1、如果对全部元素赋初值(即提供全部初始数据),



则定义数组时对第一维的长度可以不指定,



但第二维的长度不能省。


 2.gets(字符数组)



    (1)格式:gets(字符数组名) 



    (2)作用:从终端输入一个字符串到字符数组,并且得



                          到一个函数值。该函数值是字符数组的首地址。       






  gets函数这里注意  如果和scanf("%s",k);一起出现在程序中。如果gets在scanf在前面



 则不执行scanf函数。只执行gets函数  如果在后面  会执行。

while(scanf("%d",&n) != EOF)
     {
         scanf("%c",&h);
         gets(a);
         scanf("%c",&h);
         gets(b);
         scanf("%c",&h);
         gets(c); 
 
 
 
 
     } 
 
 
 
 
  while(scanf("%d",&n) != EOF)
     {
         scanf("%s",a);
         scanf("%s",b);
         scanf("%s",c); 
 
 
 
 
    }



类似这样子。



当要调用gets的时候,如果前面有输入数组要敲回车,则会将回车赋给gets;



这时要用scanf来输入,可以获取整行的完全信息(无括号)






 例:                                           



#include"stdio.h"  
   
 
 
 
 
   
   main(  ) 
   
 
 
 
 
   
   { 
   
 
 
 
 
   
        char st[15]; 
   
 
 
 
 
   
        printf("input string:\n"); 
   
 
 
 
 
   
        gets(st); 
   
 
 
 
 
   
        puts(st); 
   
 
 
 
 
   
   }



可以看出当输入的字符串中含有空格时,输出仍为全部字符串。说明gets函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束。



3.字符串连接函数strcat



    (1)格式:strcat(字符数组名1,字符数组名2) 



(2)作用:连接两个字符数组中的字符串,把



          字符串2接到字符串1 的后面,结果放在字



          符数组1中,函数调用后得到一个函数值——



          字符数组1的地址。  



例:  strcat函数的使用


#include"string.h" 
   
   
 
 
 
 
   
   main(  ) 
   
   
 
 
 
 
   
   { 
   
   
 
 
 
 
   
        static char st1[30]="My name is "; 
   
   
 
 
 
 
   
        int st2[10]; 
   
   
 
 
 
 
   
        printf("input your name:\n"); 
   
   
 
 
 
 
   
        gets(st2); 
   
   
 
 
 
 
   
        strcat(st1,st2); 
   
   
 
 
 
 
   
        puts(st1); 
   
   
 
 
 
 
   
   }


4.字符串复制函数strcpy



    (1)格式:strcpy(字符数组名1,字符数组名2) 



(2)作用:将字符串2复制到字符串1中去。字符数名2,



                       也可以是一个字符串常量。这时相当于把一



                       个字符串赋予一个字符数组。不能用赋值语



                       句对整个数组进行赋值。



 例:  复制函数的使用

#include"string.h" 
   
 
 
 
 
   
   main(  ) 
   
 
 
 
 
   
   { 
   
 
 
 
 
   
        static char st1[15],st2[]="C Language"; 
   
 
 
 
 
   
        strcpy(st1,st2); 
   
 
 
 
 
   
   puts(st1); 
   
 
 
 
 
   
   printf("\n"); 
   
 
 
 
 
   
   }


5.字符串比较函数strcmp



    (1)格式:strcmp(字符数组名1,字符数组名2)



(2)作用:比较字符串1和字符串2。



(3)规则:



A. 对两个字符串自左至右逐个字符相比(按照ASCII码值



   大小比较),直到出现不同的字符或遇到`\0`为止。如全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。并由函数返回值返回比较结果。



   B.如果参加比较的两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”。注意:小写字母比大写字母“大”。



C.比较的结果由函数值带回。



(I)如果字符串1==字符串2,函数值为0;



(II)如果字符串2>字符串2,函数值为一正整数;



(III)如果字符串1<字符串2,函数值为一负整数。



注意:对两个字符串比较时的书写格式。



例如:if (str1=str2) printf("yes");



        是不行的;而应该使用



             if (strcmp(str1,str2)==0) printf("yes");



 6.测试字符串长度函数strlen



    (1)格式:strlen(字符数组名) 



    (2)作用:测试字符串的长度。函数的值为字符串中



                          的实际长度,不包括`\0`在内。



例: 

#include"string.h" 
   
   
 
 
 
 
   
   main() 
   
   
 
 
 
 
   
   {  
   
   
 
 
 
 
   
   int k; 
   
   
 
 
 
 
   
         static char st[]="C language"; 
   
   
 
 
 
 
   
         k=strlen(st); 
   
   
 
 
 
 
   
         printf("The lenth of the string is %d\n",k); 
   
   
 
 
 
 
   
   }


7.大小写转换函数



(1)strlwr(字符串)



作用:将字符串中大写字母转换成小写字母。



(2)strupr(字符串)



作用:将串中的小写字母转换成大写字母。