3
我會盡力使我的問題很短。 雖然,我是一個初學者程序員,所以我真的很抱歉我的愚蠢問題。C - 在一個字符串上使用scanf來獲得一個數字
我有一個字符串。 我想用scanf給這個字符串一個值。 該值甚至可以是單個數字(但我也希望該數字作爲字符)。
所以我做了這個代碼:
char string[20];
scanf("%s", string);
//LETS ASSUME WE ONLY WRITE THE NUMBER 1 IN THE STRING
if(string=='1')
printf("You have entered a single number: 1");
// IF I WOULD RUN THIS PROGRAM THE PRINTF PART WOULD NOT HAPPEN. WHY?
這個代碼僅僅是當然的一個例子。 在我的程序中,我會做一個與IF不同的事情,而不是簡單的printf。
雖然,使用此代碼,如果我將字符串1作爲值,然後按Enter鍵,但我在IF中編寫的內容不會因爲某些原因而發生。
任何人都可以給我一個解釋,我應該怎麼做,然後才能使它工作?那麼我應該如何編寫IF部分?
@ user3121023嘿,我試過了,我想我有字符串現在,但我不明白的東西,我試圖做到這一點:做了一個新的字符串所以我可以使用strcmp, - > char helper [20];然後做了這個:helper [0] ='1';輔助[1] = '\ 0';假設用戶將字符串數字1作爲一個值,然後執行strcmp(string,helper);結果它給了我一個1。但它應該給我一個0,因爲兩者是平等的。問題是什麼? – Noxter
@ user3121023它的工作!非常感謝你幫助我!祝你今天愉快! – Noxter
同時告訴'scanf()'它可以將多少個字符存儲到'string'中以防止潛在的緩衝區溢出:'scanf(「%19s」,string);' – chqrlie