字元陣列的定義
同整型陣列一樣:
一維陣列定義: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...