想必学习过C语言的大家对C语言的字符数组和字符串都有一定的了解,对于初学者来说如何通过字符串处理函数便是一道重要的考验。那么究竟怎样通过字符串来对函数进行处理工作呢?下面课课家笔者就教大家如何通过字符串来处理函数。
在C语言中,它给我们提供了丰富的字符串处理函数,比如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,我们通过使用这些现成的函数便可大大减轻编程时的压力。另外用于输入输出的字符串函数,比如printf、puts、scanf、gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。下面笔者介绍几种常见字符串函数。
◎字符串长度函数strlen
strlen是stringlength的缩写,用来获得字符串的长度。所谓长度就是包含多少个字符(不包括字符串结束标志'\0'),通常的语法格式为:strlen(array Name);。strlen将返回字符串的长度,它是一个整数,具体大家可以观察下面的例子:
#include
#include
int main(){
char str[]="C language";
int len=strlen(str);
printf("The lenth of the string is %d\n", len);
return 0;
}
输出结果:
The lenth of the string is 10
这里需要给大家说明的是,strlen会从字符串的第0个字符开始计算,直到遇到字符串结束标志'\0'。将上面代码中的str改为:
char str[]="C\0language";
输出结果:
The lenth of the string is 2
◎字符串连接函数strcat
strcat是stringcatenate的缩写,意思是把两个字符串拼接在一起,通常的语法格式为:strcat(array Name1,array Name2);。array Name1、array Name2为需要拼接的字符串。strcat将把array Name2连接到array Name1后面,并删去array Name1最后的结束标志'\0'。这就意味着,array Name1的长度要足够,必须能够同时容纳array Name1和array Name2,否则会越界。strcat返回值为array Name1的首地址,具体大家可以观察下面的例子:
#include
#include
int main(){
char str1[40]="My name is";
char str2[20];
printf("Input your name:");
gets(str2);
strcat(str1,str2);
puts(str1);
return 0;
}
输出结果:
Input your name:kokojia
My name is kokojia
◎字符串复制函数strcpy
strcpy是stringcopy的缩写,意思是字符串复制,通常的语法格式为:strcpy(arrayName1,arrayName2);。strcpy会把arrayName2中的字符串拷贝到arrayName1中,串结束标志'\0'也一同拷贝,具体大家可以观察下面的例子:
#include
#include
int main(){
char str1[15], str2[]="C Language";
strcpy(str1,str2);
puts(str1);
printf("\n");
return 0;
}
运行结果:
C Language
需要我们注意的地方是,strcat要求array Name1要有足够的长度,否则不能全部装入所拷贝的字符串。
◎字符串比较函数strcmp
strcmp是stringcompare的缩写,意思是字符串比较,通常的语法格式为:strcmp(array Name1,array Name2);。array Name1和array Name2是需要比较的两个字符串。字符本身没有大小之分,strcmp()以各个字符对应的ASCII码值进行比较。strcmp()从两个字符串的第0个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。返回值:若array Name1和array Name2相同,则返回0;若array Name1大于array Name2,则返回大于0的值;若array Name1小于array Name2,则返回小于0的值。以下是对4组字符串例子的比较。
#include
#include
int main(){
char*a = "aBcDeF";
char*b = "AbCdEf";
char*c = "aacdef";
char*d = "aBcDeF";
printf("strcmp(a,b):%d\n", strcmp(a,b));
printf("strcmp(a,c):%d\n", strcmp(a,c));
printf("strcmp(a,d):%d\n", strcmp(a,d));
return 0;
}
运行结果:
strcmp(a,b):1
strcmp(a,c):-1
strcmp(a,d):0
以下是字符串处理函数的任意例子(与上文代码无关)(图1)
图1
本次巧用字符串处理函数的教程到此就暂告一段落了,如果以后有补充的话笔者会在此继续补充,同时也欢迎大家继续补充。最后希望这次的教程对大家学习C语言能够起到一定的帮助作用!
¥25.00¥49.00
¥150.00
¥100.00
¥98.00