c语言之字符串处理函数(三)
来源:互联网 发布:js 数组 empty 编辑:程序博客网 时间:2024/05/19 03:19
例3、用一个程序将所有常用字符串处理函数都写出来。
源代码实现及知识点拓展
1、程序源代码
#include <stdio.h>
#include <string.h>
int len1,len2;
int main(int argc,constchar * argv[])
{
//定义字符数组
char str1[100] ="we are the best";
char str2[100];
//从键盘上接受一个字符串
printf("请从键盘上输入一个字符串:\n");
gets(str2);
//输出字符串
printf("str1= %s\n",str1);
printf("str2 = ");
puts(str2);
printf("\n");
//计算字符串长度
len1 = strlen(str1);
len2 = strlen(str2);
printf("str1的长度= %d,str2的长度 = %d\n",len1,len2);
//字符串连接
printf("strcat(str1,str2) = %s\n",strcat(str1,str2));
//字符串拷贝
printf("strcpy(str1,str2) = %s\n",strcpy(str1,str2));
return 0;
}
2、知识点拓展
2.1
1.#include <stdio.h> #include <string.h>
文件包含(#include)
注:这个知识点的详情请见我的第一篇博文《黑马程序员——c语言之switch与if的使用比较》。若程序有字符串处理函数时,需引用#include<string.h>头文件。
2.2
2.//定义字符数组 char str1[100] = "we are the best"; char str2[100];字符数组的定义及初始化
1、定义字符数组时,应确保数组长度比字符串长度至少多1
2、定义的同时进行初始化
方法一:char c[5] = {'l','o','v','e'};//当对全体元素赋值也可以省去长度说明。
方法二:char c[5] = {"love"};
方法三:char c[] ="love";//这种方法最简便,我最喜欢使用这方法
2.3
3.//从键盘上接受一个字符串 printf("请从键盘上输入一个字符串:\n"); gets(str2);
字符串输入函数gets
从标准输入设备键盘上输入一个字符串。
注意:(1)、与getchar()用法的区分,getchar有返回值,char a = getchar();而gets没有返回值,用法是gets(a);
(2)、gets函数得到一个函数值,即为该字符数组的首地址
(3)、当输入字符串中含有空格时,输出仍为全部字符串,说明gets函数只以回车作为输入结束。这与scanf函数不同
(4)、这是个不安全的输入函数,会产生越界问题
2.4
4.//输出字符串 printf("str1= %s\n",str1); printf("str2 = "); puts(str2); printf("\n");
字符串输出函数puts
把字符数组中的字符串输出显示器。
注意:从程序中可以看出puts函数中可以使用转义字符,因此输出结果成为两行。puts函数完全可以由printf函数取代。当需要一定格式时,通常使用printf函数。
2.5
5.//计算字符串长度 len1 = strlen(str1); len2 = strlen(str2); printf("str1的长度 = %d,str2的长度 = %d\n",len1,len2);
测量字符串长度函数strlen
long int strlen(char *),测量字符串长度(不含字符串结束标志'\0')并作为函数返回值。
2.66.//字符串连接 printf("strcat(str1,str2) = %s\n",strcat(str1,str2));
字符串连接函数strcat
char * strcat(char * str1,char * str2),把字符数组str2的字符串连接到字符数组str1中字符串的后面,并删去str1的串标志“\0”。本函数返回值是字符串str1的首地址。str1需定义的足够的长度,以便全部装入被连接的字符串。
2.7
7.//字符串拷贝 printf("strcpy(str1,str2) = %s\n",strcpy(str1,str2));
字符串拷贝函数strcpy
char * strcopy(char * str1,char * str2),把str2的字符串拷贝到str1中。串结束标志“\0”也一同拷贝。str2也可以是一个字符串常量。这里相当于被一个字符串赋予一个字符数组。
2.8
字符比较函数strcmp
注:该知识点的具体用法将在我的下个博客里呈现出来。int strcmp(char * str1,char * str2),按照下标顺序比较两个字符串中的相同下标的每一个字符,并且返回第一对不相同的字符ASCII码差值(str1-str2)。若直到\0都相同,那么返回0
3、心得体会:
1、在这个例题里,我将字符数组及几乎所有常用的字符串处理函数都结合起来,若初学者看到我这篇博文,能精通这个例题,字符串方面的知识就基本上没问题。
2、这是我的第3个博客,通过三个博文中自己设计出的三个例题,我将c语言的大部分基础知识已经复习的差不多了,后面我将用一个博文综合出c语言剩下的知识点(结构体,typedef,文件等)。
- c语言之字符串处理函数(三)
- C语言系列(三)字符串处理函数
- C语言系列(三)字符串处理函数
- C语言之字符串处理函数
- (C语言)常用字符串处理函数
- c语言字符串处理函数
- C语言字符串处理函数
- c语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言处理字符串函数
- C语言字符串处理函数
- C语言 字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- LeetCode OJ 14 Longest Common Prefix
- *LeetCode-Zigzag Iterator
- SpringMVC前端控制器-----DispatcherServlet
- PAT1030 Travel Plan
- Loadrunner 录制的脚本保存不了
- c语言之字符串处理函数(三)
- 步进电机
- programming-challenges Chopsticks (111107) 题解
- Step7中有关时间和定时器的使用和例程1
- Google将Material Design带到CSS、HTML与JavaScript上
- noip
- Ubuntu下,查看以及修改PATH的方法
- 月薪3万的程序员都避开了哪些坑?
- java ==,hashCode(),equals(),