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...