C語言字串學習總結

2021-06-29 02:27:06 字數 2886 閱讀 5796

字串:實質就是多個字串行,有多個字元組成

c語言中是沒有string這種型別的,通常在c中是用字元陣列來儲存字串的。字串可以看做乙個特殊的字元陣列,為了和普通的陣列分開,故在字串的尾部加上乙個結束標誌「\0」,「\0」是乙個ascii碼值為0的字元,是乙個空的操作符,表示什麼也沒有,所以採用字元陣列存放字串,賦值時就應該包含結束標誌「\0」。

字串的初始化:

char a = 「123」;  和 char a = ;的區別:

「123」其實是由』1』、』2』、』3』、』\0』組成

「123」的儲存分布

字串的輸出」%s」,』\0』是不會輸出的

#includeint main()

//字串初始化

void test2()

; char name3[8] = ;

char name4[8] = ; //最好不要這樣寫,沒有\0結尾不是字串

char name5 = ; //不是字串,只能說是普通字元陣列

}void test()

#includeint main()

;

printf("%s\n",name); //輸出結果it

printf("%s\n",name2); //輸出結果itok,記憶體分析如下:

%s表示期望輸出乙個字串,因此printf函式會從b的首位址開始按順序輸出字元,一直到\0字元為止,因為\0是字串的結束標記。所以,如果想要建立乙個字串,記得加上結束符\0

常用字串處理函式:

strlen:計算字串長度    宣告在#include中計算的是字元數,並不是字數,乙個漢字算作3個字元,計算的字元不包括\0,從某個位址開始數字符的個數,直到遇到\0為止

/*

strlen函式:計算字串長度

1.計算的是字元數,並不是字數。乙個漢字算作3個字元

2.計算的字元不包括\0

3.從某個位址開始數字符的個數,直到遇到\0為止

*/// strlen函式宣告在string.h檔案中

#include #include int main()

;

int size = strlen(name2);

printf("%d\n", size);

*/char name = "itcast";

//printf("%s\n", name);

printf("%c\n", name[3]);

return 0;

}

字串的輸出:可以使用stdio.h中兩個函式來輸出字串,分別是printf和puts函式

printf函式:用%s表示需要輸出乙個字串

char a[3] = ;

printf("%s",a);

puts函式:puts函式輸出乙個字串後會自動換行, puts函式一次只能輸出乙個字串,printf函式則可以同時輸出多個字串

字串的輸入:

stdio.h中有2個函式可以用來接收使用者輸入的字串,分別是scanf和gets

scanf函式:

char a[10];

scanf("%s",a);

scanf函式會從a的首位址開始存放使用者輸入的字元,存放完畢後,系統會自動在尾部加上乙個結束標記\0,注意,不要寫成scanf("%s", &a),因為a已經代表了陣列的位址,沒必要再加上&這個位址運算子。

gets函式:

char a[10];

gets(a);

gets跟scanf一樣,會從a的首位址開始存放使用者輸入的字元,存放完畢後,系統會自動在尾部加上乙個結束標記\0。

gets一次只能讀取乙個字串,scanf則可以同時讀取多個字串

gets可以讀入包含空格、tab的字串,直到遇到回車為止;scanf不能用來讀取空格、tab

字串陣列:

使用場合:

一維字元陣列中存放乙個字串,比如乙個名字char name[20] = "mj"

如果要儲存多個字串,比如乙個班所有學生的名字,則需要二維字元陣列,char names[15][20]可以存放15個學生的姓名(假設姓名不超過20字元)

如果要儲存兩個班的學生姓名,那麼可以用三維字元陣列char names[2][15][20]

初始化char names[2][10] = , };  

char names2[2][10] = , };  

char names3[2][10] = ;

#include int main()

;

//printf("%s\n", names[0]);

//printf("%c\n", names[0][3]);

char names2[2][10] =,};

return 0;

}

C語言字串總結

c語言中沒有設定字串變數,所以只能用字元陣列來儲存。1,它符合陣列的一切操作 1 字元陣列的定義 即陣列的定義 char c c i c c a c m c c a c c b c o c y 2 字元陣列的初始化 即陣列的初始化 char c 其形式同 int a 是一樣的。3 字元陣列的引用 即...

C語言字串總結

c語言字元陣列的初始化 1 字元陣列的定義與初始化 1 第一種方式 char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 注意 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為空字元 即 0 ...

C語言總結 字串

字串是用字元陣列儲存的,並且最後一位必須是 0 編譯器會把這個字元陣列看做是char 型別的指標。操作 char p p abc char ch ch abc 1 char str 8 abcdefg 會把這幾個字元複製到這個字元陣列中 他的儲存方式為 如果字串不夠7個就會把剩餘的單元填 0 如果超...