字元陣列的定義與初始化
char str[10] = ;
如果說提供的字元的個數大於陣列的長度,就按語法錯誤處理,如果小於陣列的長度,不夠的位置用空字元補全
』\0』
字元陣列與字串
1)、c
語言中將字串當做字元陣列來處理
,字串的結束標誌是『
\0』,而前面的所有字元組成字串,不算
』\0』
2)
、對於字串常量的話,系統會自動在字串的結尾加
』\0』
,作為結束符,但是記憶體大小
=字元的個數+1(
』\0』
)備註:
』\n』
的acss是0
的字元,
ascii是0
的字元是不可顯示,它只是用來辨別字串結尾的標誌
例項:字串陣列的初始化
char str = ;
char str = 「abc def」;
但是上面的例子只能用於初始化乙個字元陣列,並不能用於賦值,像下面的例子就是乙個錯誤:
char str;
srt=」abc def」;
所以字元陣列只能對其元素乙個乙個賦值,除此之外字串的大小是字元個數
+1因為系統自動加
』\0』
下面的例子與上面的初始化等價
char str = ;
與
char str =
的大小不同
;字串的表示形式
c
語言中存放字串的方式:
1
)、字元陣列
charstr = 「abc def」;
2
)、字元指標指向乙個字串
char*str = 「abc def」;
說明一下
str此時不是乙個變數了,事實上它在記憶體的常量區,
str指標指向該塊記憶體
,將字串的首位址賦給
srt字串的輸出方式
printf(「%s\n」,str);
這是給出了字串的首位址,系統輸出字元資料後,然後然後
str自動
+1指向下乙個字元,直到遇到字元標誌
』\0』
字串的賦值方式
再此必須明確字元陣列裡放的是陣列的成員,而字元指標只是放的指向字串的首位址
其次字元陣列絕對不能賦值
對字元陣列只能對各個元素賦值,不能用以下方法對字元陣列賦值
char str[14];
str="i love you";
(但在字元陣列初始化時可以,即
char str[14]="i love you";
)陣列名是常量,故不能直接賦值
,故只能用strcpy(因陣列已提前分好記憶體了)
而對字元指標變數,採用下面方法賦值:
char* a;
a="i love you";
指標是變數,故可直接賦值
,但不能用strcpy(因指標沒有分配記憶體,除非提前分配好如上)
char buf[10];
char *str=buf;
strcopy(str,」i love you」)
字串賦值到陣列
c語言 strcpy 函式用於對字串進行複製 拷貝 標頭檔案 string.h char strcpy char strdestination,const char strsource 引數說明 strcpy 會把 strsource 指向的字串複製到 strdestination。必須保證 str...
字串的賦值
字串表示方法 char str 20 char ch 賦值操作 1 定義的時候賦值 char str 20 what pity char ch how are you 2 用字串複製函式 strcpy str,what pity 但是對於用指標表示的字串變數用複製函式賦值會出現問題,需要先申請記憶體...
c語言字串,字串陣列的賦值使用問題
用來存放字元的陣列稱為字元陣列,例如 char a 10 一維字元陣列 char b 5 10 二維字元陣列 char c 20 給部分陣列元素賦值 char d 對全體元素賦值時可以省去長度 以下均等效 const u8 text buffer const char text buffer1 co...