1樓:匿名使用者
b上沒有加結束符
導致輸出越界。
在printf("######");
前面 加一句 b[cont]= '\0';
這樣就可以了。
2樓:匿名使用者
請將源**複製上來 幫你除錯
c語言資料輸出中為什麼會後面多出字串
3樓:
c語言字串型別為char *或char
兩者本質上是一樣的
例如:char *x="abc";
x指向'a'
x+1指向'b'
x+2指向'c'
x+3指向'\0'
c語言在輸出x時
從x指向的內容開始輸出,一直到'\0'為止用char *定義x,會自動在末尾加上'\0'
但用char 定義x,可能末尾沒有'\0'
如:char x[3]=;
此時系統輸出x+2指向的'c'後
x+3不一定指向'\0'
系統將會繼續輸出
直到發現'\0'為止
所以c語言用字串一定要特別小心
4樓:匿名使用者
有可能是因為沒遇到字串結束符
c語言,字串反轉,為什麼輸出有時候會出現亂碼?
5樓:匿名使用者
在for迴圈外面需要加一句str1[len] = '\0';表示字串結束。
因為你只複製了0到len-1的字元,最後乙個\0沒有複製。
6樓:2b丶xiao年輕
因為你反轉後在字串末尾沒有加\0
C語言執行結果中為什麼雙精度實型只輸出小數點後六位
在c語言中,輸出double型別 雙精度實型 以及float型別 單精度實型 時,預設輸出6位小數。比如這樣的版 double a 1 printf lf n a 輸出會是 1.000000 但是權有時六位會顯得很長,沒必要。比如計算平均分,一到兩位小數就足夠了。可是有時六位又不夠,需要更多位小數,...
C語言輸出整型時為什麼有時會輸出負數
可以把 貼出來嗎 樓主,我沒有出現你的情況 我用的是你的 運用wintc編譯,如下 include stdio.h main 輸入4 7,輸出為4,7 沒有出現溢位現象 溢位了吧,用unsigned int試試。整型的範圍是 127 128 在c語言中將乙個很大的正整數賦值給乙個int型別變數a,輸...
c語言為什麼輸出的值一直是,c語言為什麼輸出的值一直是
default這個加上,還有個就是精度問題 include int main printf g n y return 0 c語言輸出的值永遠是0.000000000000000 順序流程問題。一開始你沒給a b c d賦值就執行d a b c。此時d的結果是垃圾值。然後你接下來用鍵盤給a b c賦值...