C語言,求資料輸出中,為什麼會後面多出字元

2021-03-04 06:45:28 字數 874 閱讀 8511

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