1. 程式人生 > >字串(1)

字串(1)

一、字串常量 (1)字串的標識方法:“字串”,必須用雙引號 (2)字串中可以直接表示轉義字元;例:“tianyi\n” (3)測試字串的大小:sizeof(“字串”),末尾系統預設增加\0 (4)測試有效字串的個數:strlen(“字串”) 例題:

字串 有效字元個數
sizeof(“chi\0na”) 7
sizeof(“chi\0n\0a\0”) 9
sizeof("\0chi\0na\0") 9
strlen(“chi\0na”) 3
strlen(“chi\0n\0a\0”) 3
strlen("\0chi\0na\0") 0

字元穿的大小sizeof():遇到末尾的\0才結束 有效字元數strlen():是指遇到第一個\0之前的字元

字串 有效字元個數
sizeof(" ") 1
strlen("") 0
sizeof(’ ') 這種寫法是錯誤的,至少必須放一個字元,最多放4個,但是隻能識別最後一個

二、字串的儲存 (1)定義字元陣列: char s[81]; (2)初始化: ①char s1[81[={“china”}; ②char s1[81]=“china”; ③char s2[]=“china”;

字串 有效字元個數
sizeof(“china”) 6
sizeof(s1) 81
sizeof(s2) 6

(3)字串的輸入: ①scanf("%s",陣列名); ②gets(陣列名); scanf()和gets()的區別:scanf()和gets()均可以輸入字串到字元陣列,但是scanf()只接收空格之前的字元,空格之後還可以繼續輸入但是並不能輸出,而gets()可以接受空格之後的字元,輸出的時候全部輸出。 兩者結束標誌都是回車鍵。 (4)字串的輸出 ①printf("%s",陣列名); ②puts(陣列名); 兩者均是輸出到\0結束,遇到空格不停,但是puts(陣列名)會在末尾輸出\n,printf("%s",陣列名)不會換行,需要手動新增\n。 例如:char s3[81]; (5)【從鍵盤輸入的時候,所有的字元都是字元包括\0,也是字元;在程式的任何位置出現\,就是轉義字元】 例如:char s3[81]; 從鍵盤輸入:chi\0na

字串 輸出
printf(“%s”,s3) chi
puts(s3) chi\0na
puts(s+2) i\0na

char s4[81]=“chi\0na”;

輸出
printf("%s",s4) chi
printf("%s",s4+1) hi
printf("%s",s+strlen(s4)+1 na

char s5[81]=“chi\0na”; s[strlen(s5) ]=‘X’;

輸出
printf("%s",s5) chiXna

三、字串的遍歷 ①while迴圈 ②for迴圈