C語言字串問題,C語言字元陣列與字串問題

時間 2022-02-03 11:35:03

1樓:匿名使用者

字串初始化,如果逐個賦值的話,系統不是會自動新增'\0'嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增\0,但是是會把後面所有的都設為\0因為圖一和圖四不以\0結尾,所以不能用strlen和strcmp,會越界

圖四也可以用char str[4] = "stop"這樣賦值。如果不手動加長度就會是5了。

2樓:臥諶巫話

我也試了一下,沒問題,你到底是什麼問題,是要在s1或s2中輸入空格嗎?那麼用gets函式;

gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到換行符結束,但換行符會被丟棄,然後在末尾新增'\0'字元。

其呼叫格式為:gets(s);

其中s為字串變數(字串陣列名或字串指標)。

gets(s)函式與相似,但不完全相同,使用scanf("%s",&s);函式輸入字串時存在一個問題,就是如果輸入了空格會認為字串結束,空格後的字元將作為下一個輸入項處理,但gets()函式將接收輸入的整個字串直到遇到換行為止。

你改為:

#include

void main()

這樣就用回車表示輸入結束

3樓:鄭瓔帥桃

char *p1="abcd", *p2="abcd", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));//將p2+1連線到p1+2後面,再拷貝到str+2裡面

printf("%s",str);//p1+2為cd//p2+1

為bcd

strcat(p1+2,p2+1)

為cdbcd

str+2

為zstrcpy(str+2,strcat(p1+2,p2+1))//

為xycdbcd

此處z被覆蓋了

4樓:韓璣夷柏

p1p2

str記錄的都是字串的首地址

strcat拼接字串,

p1位置是『a』,+2,後移2個

到'c'

得到cd

p2位置是『a』,+1,後移1個

到'b'

得到bcd

拼接為cdbcd

strcpy複製字串

str位置是'x'

+2後移2個

到『z』位置

從『z』位置開始複製,cdbcd就替換了「xyz」

從z以後的所有

所有就得

xycdbcd

c語言字元陣列與字串問題

5樓:渿河

這是在定義時初始化 如果你的右邊花括號內的字元個數少於【陣列元素個數】 那麼其餘的陣列元素將會初始化為0 , 』\0'的ascii碼的值就是0 ;

如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的

6樓:

char c[10]=;這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的

C語言字元陣列與字串問題,C語言中將字串賦值給字元陣列的問題

渿河 這是在定義時初始化 如果你的右邊花括號內的字元個數少於 陣列元素個數 那麼其餘的陣列元素將會初始化為0 0 的ascii碼的值就是0 如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的 char c 10 這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的 c語言中將字串...

c語言中字元陣列只能存放字串,C語言中字元陣列只能存放字串?

八哥說科技 不是的,c語言中字元陣列既可以儲存字元,又可以儲存字串。字元陣列本意就是是指用來存放字元資料的陣列。字元陣列的元素是字元型別的。字元陣列用於存放字元或字串。c語言中字元陣列的一般形式為 char 陣列名 資料長度 例如 char a 10 a 0 0 a 1 1 a 2 2 a 3 3 ...

c語言字串問題

首先字串定義是 char c 用指標 而不是char c 這樣是單個字元定義了。其次字串賦值要加上雙引號 即c 0326 最後輸出用s d 是整型輸出了。0362是8進位制數 以0開頭 轉化為十進位制是242。char 佔一個位元組 型別的範圍是 128 127,242超過了char的表達範圍。所以...