字元陣列的初始化及字串的使用

2021-10-24 19:36:10 字數 1314 閱讀 5657

字元陣列的定義

同整型陣列一樣:

一維陣列定義:char c[10];

二維陣列定義:char ch[3][4];

字元陣列初始化

定義陣列時初始化,如:char c[10]=;

作為整個字元輸出時:printf("%s",ch);則輸出abc。

由於字元型資料是以整型資料形式(ascii碼)存放,所以也可以用整型陣列來存放字元資料;int a[10]; a[0]='a';缺點:容易造成記憶體空間的浪費,因為乙個整型資料佔4個位元組,乙個字元型資料佔1個位元組。

僅定義陣列char c[10];後沒有對陣列初始化,會輸出不可預估的值;如果花括號中提供的字元個數>陣列長度,則會出現語法錯誤;

可以不寫陣列長度:char c=;陣列長度即為大括號中的字元個數。可用printf("陣列長度為:%d\n",sizeof(c));驗證。

用字串常量初始化字元陣列char c="i am a";末尾自動加』\0』,等同於char c=,也可以把大括號去掉char c=;此時陣列長度為7,最後一位是』\0』。

c語言中陣列名代表該陣列的起始位址,所以不能在初始化後重新賦值。

如:char str1=「china」; str1=str2;編譯錯誤

字串存放

c語言中沒有字串型別,也沒有字串變數,字串是存放在字元型陣列中的。c語言將字串作為字元陣列來處理

字串結束標誌—』\0』

'\0』的作用

表示字串結束

如:定義陣列 char str1=「china」; 如果想用scanf(…)或者gets()對陣列中的元素進行修改的話,如:

char str1="china"; 

scanf("%s",str1);

//或gets(str1);

puts(str1);

/*for(int i=0;i<5;i++)

*/

最多可輸入長度為6的字串(包含』\0』),否則會報錯;

假設輸入的字串是"ww",用scanf或者gets函式時,會自動給輸入的字串末尾加乙個』\0』;所以此時陣列str1中存放的元素為: w w \0 n a \0

如果將for迴圈中的迴圈條件i<5改為i

字串陣列初始化

1 char arr 10 hi 初始化字串陣列時,編譯器自動將字串最後乙個字元後面加上 0 以表示字串的結束。如果陣列的大小大於字串的長度 1,那麼把字串結束後面的元素也都初始化為 0 看這段程式 定義乙個大小為12的字串陣列 char str1 12 jiajia 讓乙個char型的指標指向這個...

字串初始化

在c語言程式設計中,當我們宣告乙個字串陣列的時候,常常需要把它初始化為空串。總結起來有以下三種方式 1 char str 10 2 char str 10 3 char str 10 str 0 0 第 1 2 種方式是將str陣列的所有元素都初始化為 0 而第 3 種方式是只將str陣列的第乙個元...

字串初始化

在 裡,經常會用字串進行初始化操作。比如 void func void 對於上面2條初始化語句,它們的區別是什麼呢?1,首先,hello world 是乙個字串常量,存放在靜態常量區。2,str1是乙個字元陣列,分配在棧上,儲存空間由 hello world 的長度 含 0 決定,存放的內容由 he...