C語言字串

2022-08-15 17:21:13 字數 1751 閱讀 4352

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....