當前位置:編程學習大全網 - 編程軟體 - C語言編程,為什麽我的字符輸出老是有壹些不見了

C語言編程,為什麽我的字符輸出老是有壹些不見了

說實話,我都不知道妳為什麽能有輸出……

以下是我對這個程序的理解:

首先,妳聲明了壹個未賦值的數組a[80]。然後希望用getchar()獲取輸入的字符串並賦值給數組a。

那麽問題來了,我們應該怎麽判斷輸入的字符串截止了呢?

可以用回車鍵也就是\n表示截止吧。

但是妳在循環裏用了a[i]!='\0'來停止循環。

可能妳是聽老師說char a[10]="ABC";這樣的賦值在第四個字符會以'\0'作為字符串截止標誌於是拿這個來中斷循環?但那是程序自動加上的,getchar()函數只會讀取輸入不會自動給末尾加'\0'。理論上妳輸完那個字符串後應該壹直卡在getchar()等候妳的輸入。

實際上妳應該在getchar()函數獲得'\n'時跳出循環。

另外for循環會在執行循環內語句前判斷是否進入循環,所以妳單純改成a[i]!='\n'也沒用,因為此時a[i]是壹個未初始化的值,還沒得到getchar()的賦值。也不能寫成a[i-1]!='\n',否則妳不僅要從i=1開始循環,而且賦值的時候還要賦值給a[i-1],挺麻煩。同時不能保證用戶輸入了1000個字符時不會導致超限。

我的建議是判斷語句寫成i<80,然後在getchar()後面加個if(a[i]=='\n')break;來主動跳出循環。

下壹個循環倒是可以簡單地把a[j]!='\0'改成a[j]!='\n'來完成輸出。

  • 上一篇:cnc工作流程
  • 下一篇:朱迅給了機器人壹個麥克風,不知道從哪裏傳過去。她是如何在匆忙中挽救現場的?
  • copyright 2024編程學習大全網