c語言輸出字串陣列出現亂碼,C語言陣列輸出出現亂碼

2021-03-28 02:47:08 字數 2517 閱讀 5800

1樓:已存在這個名字

c語言字串以'\0'結尾,如果不以該符號結尾則輸出%s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦'\0'給那兩個陣列,所以會出現亂碼。

沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上'\0'符號。

2樓:匿名使用者

#include

int main(void)

}c語言中字串以'\0'結尾,你這樣迴圈50次把超過你輸入的字元範圍都讀出來了。

3樓:

字串陣列各字元單個賦值的話,你得主動在每串最後一個字元之後新增 '\0',表示串結束了,輸入時就沒有多餘的亂碼了,因為gets()或scanf() 的%s都是主動在串結束後新增了 '\0'的

4樓:匿名使用者

新增一個結束字元: a[i]='\0';

或者在初始化字元陣列a的時候,首先 初始化字元陣列a的記憶體,memset(a,0,40);

5樓:匿名使用者

由於hello 只有5個位元組,而str迴圈中輸出的是50個位元組的內容,剩下的45位元組的空間,都還沒有初始化過。

訪問未曾初始化的記憶體,就會出現意想不到的輸出結果(不應該這麼做)所以修改for迴圈為

for(i =0; str[i] != '\0'; i++)就可以了~ 其中'\0'是字串的結束符。

6樓:餛飩

字串是以/0結束為標誌的,出現亂碼的話,應該是沒有找到正確的/0或者,你把字串的/0重新賦值了。

char str = "hello, world !";

str[strlen(str)] = 4;//此時,字串就被破壞,會輸出亂碼。

7樓:匿名使用者

沒有**很難給你準確的答案,但是通常是輸出格式有誤引起的,看看printf函式的變數前有沒有寫了多餘的&取地址符或者檢查一下陣列有沒有越界

8樓:匿名使用者

肯定把'\0'輸出了 檢查一下判斷迴圈結束條件是否正確

9樓:被黑狂魔託雷斯

#include

int main()}

c語言陣列輸出出現亂碼

10樓:匿名使用者

由於hello 只有5個位元組,而str迴圈中輸出的是50個位元組的內容,剩下的45位元組的空間,都還沒有初始化過。

訪問未曾初始化的記憶體,就會出現意想不到的輸出結果(不應該這麼做)所以修改for迴圈為

for(i =0; str[i] != '\0'; i++)就可以了~ 其中'\0'是字串的結束符。

11樓:匿名使用者

#include

int main(void)

}c語言中字串以'\0'結尾,你這樣迴圈50次把超過你輸入的字元範圍都讀出來了。

12樓:匿名使用者

這是因為你的陣列沒有初始化,而你要全部輸出,所以會這樣顯示,你可以利用strlen函式獲取到字串長度,然後再for迴圈裡把50換為這個長度strlen(str),就可以了,記得要加標頭檔案,#inclued

13樓:匿名使用者

不太嚴謹的改法是迴圈條件i<50改為str[i]!='\0'

14樓:被黑狂魔託雷斯

#include

int main()}

c語言字元陣列輸出亂碼的問題,請教一下

15樓:已存在這個名字

c語言字串以bai'\0'結尾

du,如zhi果不以該符號結尾則輸出%s時會出錯,程式一dao直往存放字串版

的地址訪問權。而你的程式中並沒有賦'\0'給那兩個陣列,所以會出現亂碼。

沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上'\0'符號。

16樓:匿名使用者

carray2[2]沒有賦值為'\0'

c語言,關於printf()輸出字串(陣列)出現亂碼的解釋,求給個比較專業、略微詳細的解釋? 50

17樓:aplomb_一杯水

這麼說吧,方式一和方式二申請的記憶體都不夠。因為a-g共有7個字元、而你只申請了7,導致\0,沒有空間。字串是以\0為結束值、\0是系統自動加在字串末尾的。

也就就是說申請的空間必須要大於字串的長度。

c語言列印字串亂碼,應該怎麼辦?

c語言 字串輸出時最後出現一個亂碼 **等

18樓:匿名使用者

for (i = 0; i <= len; i++)

兩個這個地方都要寫成 < 不能等於

19樓:鑄信

修改這裡:len = strlen(cs)-1;

c語言列印字串亂碼問題,C語言,字串輸出是亂碼

include void reverse char p,char q char myitoa int value,char const string,int radix else while value if sign reverse string,s 1 s 0 return string int...

c語言怎麼用printf輸出字串

printf函式的一般格式 printf 格式控制字串,輸出表列 以圖1所示為例。圖1.函式引數包括兩部分 1 格式控制字串,是用雙引號括起來的字串,也稱為轉換控制字串,它指定輸出資料項的型別和格式。它包括兩種資訊 格式說明項 由 和格式字元組成,如 d,f等。格式說明總是由 字元開始,到格式字元終...

C一維陣列,用for語句反向輸出字串

string str console.readline 輸入字串 for int i str.length 1 i 0 i 把字串當字元陣列逆向迴圈 console.readline 暫停程式檢視結果所謂字串 實際上是一個字元陣列 char 所以直接用for逆向迴圈就行了 console.write...