字串常量是由一對雙引號括起來的乙個字串行。如「hello」,「12354」「
無論雙引號內是否包含字元,包含多少個字元,都代表乙個字串常量
為便於確定字串的長度,c編譯器會自動在字串的末尾新增乙個ascll碼值為0的空操作符『\0』作為字串結束的標誌,在字串中可以不顯示地寫出
字串:實際就是由若干有效字元構成且以字元『\0』作為結束的乙個字串行
字串賦值時可以直接宣告陣列長度,也可以不宣告陣列長度
char str[6] = ;
char str2[6] = ;
char str3 =
以上的三種賦值法都是合法的
字串的長度和字串陣列的長度不同
陣列長度 = 字元數 + 1
通常,我們將乙個字串放在一維字元陣列中;將多個字串放在多維字元陣列中
字元第一維的長度代表字串的個數,可以省略;但是第二維的長度不能省略,應該按最長的字串的長度設定第二維的長度
char weekday[7][10] = ;
char weekday[10] = ;
上述的兩種初始化的方法是正確的
若字串太長,無法寫在一行中,則可將其拆分成幾個小的片段寫在不同的行中
char longstring = "this is the first half of the string"
"and this is the second half.";
字元指標:是指向字元型資料的指標變數。
字元指標中儲存的位址值是字元陣列的首位址
直接定義 char *ptr =「hello」
間接定義 char *ptr; ptr = 「hello」
和其他型別的陣列一樣,可以通過使用下標的方式訪問儲存在字元中的每個字元
str [0] 就是字元陣列的第乙個字元
此外可以通過字元指標間接訪問存放於陣列中的字串
若字元指標ptr指向了陣列str的首位址,既可以通過*(ptr+i)來引用字串中的第i+1個陣列;
*(ptr+i)相當於 *(str+i)即str[i]
注意,對於陣列名str,不能使用str++操作使其指向字串中的某個字元,因為陣列名是乙個位址常量,其值是不能被改變的
有三種方式可以對字串進行輸入或輸出
第一種按照c格式符
for(i = 0; i < 10; i++)
for(i = 0; i < 10; i++)
第二種按照s格式符scanf("%s",str);
printf("%s",str);
注意當使用s格式符時,無論是輸入還是輸出,都不用&取位址符
因為此時str不僅僅是字元名,也是代表字元的首位址
第三種gets()puts()
使用字串處理函式gets(),可以輸入代空格的字串
gets()以回車符作為字串的終止符,同時將回車符從緩衝區讀走,但不作為字串的一部分
scanf()不讀走回車符,回車符仍在輸入緩衝區
puts()用於從括號內的引數給出的位址開始,依次輸出儲存單元中的字元,當遇到第乙個』\0『時輸出結束,並自動輸出乙個換行符
printf()可以在輸出行中新增一些其他的字元資訊
由於gets()函式不能限制輸入字串的長度,需要用fgets()函式來約束它
fgets(name,sizeof(name),stdin)
函式功能函式呼叫的一般形式
功能描述及其說明
求字串長度
strlen(str)
由函式值返回字串str實際長度,即不包括』\0』在內的實際字元的個數
字串複製
strcpy(str1,str2)
將字串str2複製到字元陣列str1中,這裡應確保字元陣列str1的大小足以存放下字串2
字串比較
strcmp(str1,str2)
比較字串str1和str2的大小,結果分一下三種第一種當str1大於str2時,函式返回值大於0;當str1等於str2時,函式返回值等於0;當str1小於str2時,函式返回值小於0
字串鏈結
strcat(str1,str2)
將str2新增到str1的末尾
「n族」字串複製
strncpy(str1,str2,n)
將字串str2的至多前n個字元複製到字元陣列str1中
「n族」字串比較
strncmp(str1,str2,n)
比較前n個字元
「n族」字串鏈結
strncat(str1,str2,n)
將str2最多前n個字元新增到str1的末尾
C語言字串 字串排序
本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b...
C語言 字串
char str lnj 字串變數 l n j 0 printf str size lu n sizeof str 字元陣列 這個並不是字串,而是字元陣列 char charvalues 如何輸出字串變數,s str 陣列的名稱,陣列的名稱就是陣列的位址 s的原理,從傳入的 位址 開始逐個取出,直到...
c語言字串
字串 字串1 概念 1.1 定義 1.1.1 用雙引號引起來的多個字元 1.2 兩個連續的雙引號中間是空格或回車,則兩個字串自動連在一起 1.3 遇見 0字串結束,0可以提前終止字串 1.4 初始化 1.4.1 char str 6 1.4.2 char str hello 編譯時自動給 加6 1....