c語言字串
一、字串基礎
注意:字串一定以\0結尾。
printf(「yang\n」);
其中yang為字串常量,「yang」=『y』+『a』+『n』+『g』+『\0』。字串由很多的字元組成,通常使用字元陣列來儲存字串,如char name[10]=「yang」;也可以以printf(name);的形式輸出,即通過陣列來訪問字串,但會有警告。因為預設情況下,printf函式只接受字串常量作為引數(對變數並未寫明)。
字串的三種寫法:
char name[8]=「yang」;//陣列占用了8個位元組的儲存空間,但是只含有5個字元。
char name[8]=;
char name[8]=;
這三種寫法在記憶體中的表現都是一樣的。
char name=;前面不寫個數,不是乙個字串,只能說是乙個普通的字元陣列。
char name=「yang」;
name[1]=『o』;把字串的第二個元素值由a改成o。
二、字串使用注意點
(1)分析**,了解\0的作用。
char name=「yang」;
char name2=;
printf(「name2=%s」,name2);
%s:根據右邊的引數,列印字串(遇到\0為止)
上面**的列印結果為:okyang
下面是記憶體情況分析:
問1:char name=「y\0ng」;則列印結果為什麼?(oky)
問2:此時列印name的值,使用%s是多少?y\0ng還是y?
(2)strlen函式
strlen函式計算字串的長度(字元數)但不包括\0,是字元數不是字數。比如乙個漢字佔三個字元。
strlen(「haha」);//長度為4
strlen(「哈haha」);//長度為7而不是5
設char name=「it\0cast」;
strlen(name);值為2,因為strlen從字串的位址開始計算,直到遇到\0為止。
假設char name=「itcast」;
char name2=;
int size=strlen(name);
此時size的值為8。
(3)練習,編寫乙個函式char_contains(char str,char c),如果字串中包含字元c,則返回1,否則返回0。
int char_contains(char str,char c)
return 0;
}//呼叫語句
int result=char_contains(「yang」,『a』);
//使用while迴圈
①. while(i②. while(str[i]!=『\0』)
③. while(str[i])
④. int i=-1;while(str[i++])
三、字串陣列
二維字元陣列,儲存兩個字串陣列,每個的長度為1,下面是兩種寫法但儲存情況是一樣的。
char name[2][10]=;
char name2[2][10]=,
}把rose輸出:printf(「%s」,name2[1]);
輸出k:printf(「%c」,name2[0][3]);
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....