strcat, strcmp,strcpy三大函数知识点

1. strcat函数


一般形式:strcat(字符数组1,字符数组2)
作用:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。

例如:

char str1[30]={″Hello ″};
char str2[]={″Word″};
printf(″%s″,strcat(str1,str2));  
输出:
Hello Word

2. strcmp函数 


一般形式:strcmp(字符串1,字符串2) 
作用:比较字符串1和字符串2。


例如:

strcmp(str1,str2);
strcmp(″China″,″Korea″);
strcmp(str1,″Beijing″);

(1)比较的结果由函数值带回


         a,若字符串1=字符串2,函数值为0。
         b,若字符串1>字符串2,函数值为正。
         c,若字符串1<字符串2,函数值为负。


 (2)对两个字符串比较:


         a,错误形式:if(str1>str2) 
                                 printf(″yes″);
         b,正确形式:if(strcmp(str1,str2)>0) 
                                 printf(″yes");

   (3)  字符串是数组类型而非简单类型,不能用关系运算进行大小比较。

  

         if("ABC">"DEF")   /*错误的字符串比较*/

         if(strcmp("ABC","DEF")   /*正确的字符串比较*/

3. strcpy函数

(“字符串复制函数”)
一般形式:strcpy(字符数组1,字符串2) 
作用:将字符串2复制到字符数组1中去。

例如:
char str1[10],str2[]={″csdn″};
strcpy(str1,"csdn");

(1)字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。
(2)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。

         其中,字符串1必须是字符串变量,而不能是字符串常量。strcpy函数把字符串2的内容完全复制到字符串1中,而不管字符串1             中, 原先存放的是什么。复制后,字符串2保持不变。

         例如:   strcpy(str1,″China″);


(3)复制时连同字符串后面的′\0′一起复制到字符数组1中。
(4)可以用strncpy函数将字符串2中前面若干个字符复制到字符数组1中去。


         例如:strncpy(str1,str2,2);

         作用:将str2中前面2个字符复制到str1中去,然后再加一个‘\0’

(5)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

         例如: 
         str1=″China″;  不合法    
         str1=str2;       不合法

(6)用strcpy函数只能将一个字符串复制到另一个字符数组中去。
         用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。
         例如:(合法的使用)


          char a[5],c1,c2; 
          c1=′A′;  c2=′B′;
          a[0]=′C′; a[1]=′h′; a[2]=′i′; 
          a[3]=′n′; a[4]=′a′; 

 (7)由于字符串是数组类型,所以两个字符串复制不通过赋值运算进行。  

          例如:

          t=s;   /*错误的字符串复制*/

          strcpy(t,s);   /*正确的字符串复制*/

猜你喜欢

转载自blog.csdn.net/weixin_44015669/article/details/89741471