【发布时间】:2017-04-03 22:14:09
【问题描述】:
我会尽量简短地说明我的问题是什么。 虽然,我是一个初学者程序员,所以我真的很抱歉我的愚蠢问题。
我有一个字符串。 我想用 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部分呢?
【问题讨论】:
-
@user3121023 嘿!我尝试过这个。我想我现在有绳子了。但我不明白一些事情。我尝试这样做:创建了一个新字符串,以便我可以使用 strcmp,-> char helper[20];然后做了这个: helper[0]='1';助手[1]='\0';假设用户给字符串数字 1 作为值,然后执行 strcmp(string,helper);结果它给了我一个1。但它应该给我一个 0,因为两者是相等的。有什么问题?
-
@user3121023 成功了!非常感谢你帮助我!祝你有美好的一天!
-
还告诉
scanf()可以存储多少个字符到string以防止潜在的缓冲区溢出:scanf("%19s", string);
标签: c string numbers character scanf