C語言的幾個小常識

char  s[20]  與  char  *s[20]的區別     
/*     char   s[20]表示在棧上分配了20個字符空間,該空間的首址爲s 
        char   *s[20]表示一個指針數組,該數組有20個成員.每一個成員都是一個指針     */


*p++ 與 (*p)++的區別

/*     *p++表示   取*p的值後p的地址加1 
      (*p)++表示取*p的值後*p指向的值加1 
*/

 

gets(str[i]);
clrscr();   功 能: 清除文本模式窗口清屏的意思
puts(a);   功 能: 送一字符串到流中 用 法: int puts(char *string);

int main(int argc, char *argv[])

 

strcpy函數     strcat函數      strcmp函數         strlen()函數


strcpy函數用於實現兩個字符串的拷貝。一般形式是: strcpy(字符中1,字符串2)
其中,字符串1必須是字符串變量,而不能是字符串常量。strcpy函數把字符串2的內容完全複製到字符串1中,而不管字符串1中原先存放的是什麼。複製後,字符串2保持不變。 

例:    注意,由於字符串是數組類型,所以兩個字符串複製不通過賦值運算進行。 

  t=s;   /*錯誤的字符串複製*/
  strcpy(t,s);   /*正確的字符串複製*/


char s[30]; 
strcpy(s, "Good News!"); /*給數組賦字符串*/


在C語言中 strchr 和 strstr函數都被包含在<string.h>頭文件中,也就是要調用它們時要在程序前面包含<string.h>頭文件,也就是寫這個語句:#include<string.h>


strchr函數原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出項字符ch的位置,找到就返回該字符位置的指針(也就是返回該字符在字符串中的地址的位置),找不到就返回空指針(就是 null)。


strstr 函數原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出項字符串str2的位置(也就是說字符串sr1中要包含有字符串str2),找到就返回該字符串位置的指針(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指針(就是 null)。

它們一個是求一個字符在字符串中得位置,另一個是求一個字符串在另一個字符串中的位置。
 strchr(s,'V');

 

字符數組與sting的區別:字符數組最後一個要存'\0'
我們定義字符數組時,通常採用第一種形式,即不顯式指定字符串的長度,而由編譯器自行確定字符數組的長度。 
 char s1[] = "example";
字符數組也可以在定義時初始化:
  char str[16] = {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', ' a', ' ', 's', 't', 'r', 'i', 'n', 'g'};

 

01 #include<stdio.h>
02 #include<string.h>
03 void main()
04 {
05   char string[20]; char str[3][20]; int i;
06   for(i=0;i<3;i++)
07      gets(str[i]);
08   if(strcmp(str[0],str[1])>0)
09      strcpy(string,str[0]);
10   else
11      strcpy(string,str[1]);
12   if(strcmp(str[2],string)>0)
13      strcpy(string,str[2]);
14   printf("\nThe largest string is %s\n",string);
15 }

 

 

01 #include <syslib.h>
02 #include <string.h>
03 int main()
04 {  
05     char *s1="Hello, Programmers!";
06     char *s2="Hello, programmers!";
07     int r;  
08    clrscr();  
09    r=strcmp(s1,s2);
10    if(!r)
11      printf("s1 and s2 are identical");
12    else if(r<0)
13      printf("s1 less than s2");
14    else
15      printf("s1 greater than s2");
16    getchar();
17    return 0;
18 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章