C語言輸出結果後又出來一串亂碼求找錯

2021-05-22 16:03:23 字數 1015 閱讀 8647

1樓:匿名使用者

沒編譯,baireview一下,有

兩個du問題:

gets() 讀取字串,以zhi回車結束dao,但版並不把回車讀進去,權而是把回車換成'\0』結束字串。所以,是否以'\n'來判斷皮字串結束?

下面**:

while(*p[k]!=' ')

實際最後一個單詞並不是以' '做為結束的,這樣在輸出前面幾個單詞後,最後一個單詞在到了末尾還是要繼續輸出,結果就是記憶體中的隨機數,導致出來的是亂碼。嚴重情況訪問記憶體到敏感區域會讓程式崩潰。

建議:如果你的確是分拆分單詞,那不如把有所' '換成'\0', 然後輸出用printif,puts 之類直接輸出,也省了迴圈輸出的麻煩 而且輸出最後一個單詞也不會越界。

2樓:冽冽不是逗比

變數初始化好像你沒做 記憶體裡本來就有亂碼內容

c語言問題!!我輸出的內容是正確的但是後面會有一堆亂碼是怎麼回事??

3樓:聽不清啊

如果輸出的是字串,則是沒有正確設定串尾符'\0'(或是正確的串尾符被破壞掉了)的緣故。

c語言輸出後出現亂碼 求解答問題出在哪

c語言問題,為什麼結果輸出之後還有一堆亂碼

4樓:匿名使用者

你的加上字串結束符啊str2[i-1]='\0'; 還有你要只要i#include

#define n 40

void main()

str2[i]='\0';

printf("%s\n",str2);}

c語言 指標問題? 輸出結果是亂碼… 不知道那裡錯了…求指教…**是寫的**。

5樓:匿名使用者

做輸入操作的時候p指標已經指向了a陣列的末尾,在做輸出的時候並沒有將p指標重新指向a的開始位置,所以才會亂碼,輸出之前重新指向a的首地址就可以了

C語言字串出現亂碼,C語言 字串輸出時最後出現亂碼

第6行改為 char a 100 b 100 如果要輸出最終結果,沒必要每複製一個字元就輸出一次。將第25行刪掉。可以參考一下這個,講的很清楚 亂碼問題 codeblocks亂碼問題。它這個是codeblocks的,其他其實也差不 太多吧。關鍵是 原始檔儲存編碼 編譯器解釋原始檔的編碼 生成執行檔案...

C語言輸入一串英文句子,怎麼讓單詞順序不變,再倒序輸出例如

include include typedef struct stackstack void init stack s void rev stack s printf printf n int main stack s init s char c 1000 gets c for int i 0 i ...

請教各位大大們有關C語言的問題。輸入一串整數,求他們的平均值(保留兩位小數),最大值和最小值

include int main void else sum a while getchar n printf 2lf n d n d n sum cnt,max,min return 0 c語言程式 輸入任意2個整數,求它們的平均值,結果保留2位小數。急求 include void main 執行...