簡體   English   中英

C - 在字符串上使用scanf來獲取數字

[英]C - Using scanf on a string to get in a number

我會盡量簡短地解決我的問題。 雖然,我是初學程序員,所以我真的很抱歉我的愚蠢問題。

我有一個字符串。 我想使用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作為值,然后按回車鍵,我在IF中寫的東西不會因某種原因發生。

任何人都可以給我一個解釋,我應該怎么做才能使它工作? 那我該怎么寫IF部分呢?

使用(小心單引號表示char值而不是字符串文字)

#include <string.h>

...

if (strcmp(string, "1") == 0) /* if it returns 0, the string contents are the same for both strings */

...

因為C沒有直接支持進行字符串比較,而你實際上是在比較兩個指針(即使它們存儲了相同的值,它也不會是與字符串文字"1"相同的指針,並且string變量位於在你的計算機內存的不同地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM