ror ,因长度不够。
(2)连接前两个字符串的后面都有’\0’,连接时将字符串1后面的’\0’取消,只在新串最后保留’\0’。
4.strcpy和strncpy函数——字符串复制函数
其一般形式为:
strcpy(字符数组1,字符数组2)
strcpy是STRingCoPY(字符串复制)的简写。它表示“字符串复制函数”,作用是将字符串2复制到字符数组1中去。如:
char str1[10],str2[] = “china”;
strcpy(str1,str2);
说明:
(1)字符数组1必须定义得足够大,以便容纳被复制的字符串2.字符数组1的长度不应小于字符串2 的长度。
(2)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。如:
strcpy(str1,”china”);
作用与前面相同。
(3)如果在复制前未对str1数组初始化或赋值,则str1各字节中的内容是无法预知的,复制时将str2中的字符串和其后的’\0’一起复制到字符数组1中,取代字符数组1中的前6个字符,最后4个字符并不一定是’\0’,而是str1中原有的最后4个字节的内容。
(4)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如:
str1 = “china”;
str2 = str1; //这是错误的。
只能用strcpy函数将一个字符串复制到另一个字符数组中去。用赋值语句只能讲一个字符赋给一个字符型变量或字符型数组元素。
5.strcmp函数——字符串比较函数
其一般形式为:
strcmp(字符串1,字符串2);
strcmp是STRingCoMPare(字符串比较)的缩写。它的作用是比较字符串1和字符串2.如:
strcmp(str1,str2);
strcmp(“china”,”korea”);
strcmp(str1,”Beijing”);
说明:字符串比较的规则是:将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。
(1)如全部字符相同,则认为两个字符串相等。
(2)若出现不相同的字符,则以第1对不相同的字符的比较结果为准。
如果参加比较的两个字符串都是由英文字母组成,则有规律:在英文字典中在后面的为“大”。如:在computer在字典中的位置在compare之后,所以“computer”>“compare”。但应注意小写字符比大写字符“大”。所以“DOG”<“cat”
比较的结果由函数值带回。
(1)如果字符串1=字符串2,则函数值为0
(2)如果字符串1>字符串2,则函数值为一个正整数
(3)如果字符串1<字符串2,则函数值为一个负整数
注意:对两个字符串比较,不能用以下形式:
if(str1>str2)
printf(“yes”);
只能用:
if(strcmp(str1,str2)>0)
printf(“yes”);
6. strlen函数——测字符串长度的函数
其一般形式为
strlen(字符数组)
strlen是STRingLENgth(字符串长度)的缩写。它是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括’\0’)。
char str[10] = “china”;
printf(“%d”,strlen(str));
输出结果不是10,也不是6,而是5.也可以直接测试字符串常量的长度,如:
strlen(“china”);
7.strlwr函数——转换为小写的函数
其一般形式为
strlwr(字符串)
strlwr是STRingLoWeRcase(字符串小写)的缩写。函数的作用是将字符串中大写字母转成小写字母。
8.strupr函数——转换为大写的函数
其一般形式为
strupr(字符串)
strupr是STRingUPpeRcase(字符串大写)的缩写。函数的作用是将字符串中小写字母转成大写字母。
以上介绍了常用的8种字符串处理函数,应当再次强调:库函数并未C语言本身的组成部分,而是C语言编译系统为方便用户使用而提供的公共函数。当然,不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,必要时查一下库函数手册。
注意:在使用字符串处理函数时,应当在程序文件的开头声明
#include <string.h>
把”string.h”文件包含到本文件中。