C語言程式設計問題,求高手解答遇到輸入非法字元時,怎麼處理

2021-03-07 04:53:52 字數 1532 閱讀 2646

1樓:

#include

#include

#include

#include "regex.h"

const int max_len = 1000;

/*去掉字串兩端的空格*/

char * trimstring(char guessstring)

/*尾部空格*/

while( rear >= 0 &&

(guessstring[rear] == ' ' || guessstring[rear] == ' ' )

)for(i = head ,k = 0; i <= rear ; i++ , k++)

result[k] = '\0';

return result;}/*

提取字串中的【正整數】。

如果是恰好包含【一個正整數】的字串(正數前後可以有任意個空格,正數可以有多餘的前導0),則返回這個正數;

如果是一個空串,則返回 -1

如果包含非數字字元,則返回-2

*/int transstringtonum(char guessstring)

// 檢查是否有非數字字元

for(i = 0 ; trimguessstring[i] != '\0' ; i ++)

}// 字串轉換成數字

for(i = 0 ,num = 0 ; trimguessstring[i] != '\0' ; i++)

return num;

}int main()

if(guessnum == -2 )

if(guessnum>num)

else if(guessnumnum) else if(guessnum

就知道錯了。這時if(guessnum = num)永遠都會被執行

因為這是一個【賦值語句】而不是【邏輯語句】,且 num 的值是恆正的

*/else if(guessnum == num)

}printf("do you want to continue(y/n or y/n)?");

/* 用 getch() 取代scanf ,不易出錯

因為 getch()只能輸入一個字元

而 scanf 可以讀入多個字元,而且要回車

*/fflush(stdin);

reply = getch();

}while((toupper(reply)=='y'));

printf("the game is over!\n");

return 0;}/*

輸入合法數字示例(數字包含在一對""中):

"123"

" 123"

"123 "

" 123 "

" 0000123 "

上面的結果都是輸入正數: 123*/

2樓:軍神再現

可以採用如下語句

while((scanf("%d",&x))==1)

{}只有輸入一個數字時,才進入主體語句

c語言的題,求高手解答,求高手解答一下C語言題

同學,你好,你的程式中有錯誤 程式的前面幫你修改了一下,但是在 p1 w 處,不知道你是怎麼抄的沒有一個w的變數 修改正確後在發來 吧 include include void fun char int m int main c語言的題,求高手解答 結果應該是721 先看main函式,i 1時,i ...

c語言問題程式設計,C語言程式設計問題

程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...

c語言程式設計問題,C語言程式設計問題

你演算法都寫出來了,還要我們幫你寫什麼,演算法能寫,相信你能搞定的 c語言程式設計問題 b 當i 0時。呼叫 if語句 a 6t a 就是t等於t a然後a自曾,得t 6 return t a 這是a已經自曾為7 得返回13 呼叫當i 1時if語句的else句 a 7t a 就是t等於t a然後a自...