gpt4 book ai didi

C - 在字符串上使用 scanf 获取数字

转载 作者:行者123 更新时间:2023-12-04 09:12:37 24 4
gpt4 key购买 nike

我会尽量简短地说明我的问题是什么。虽然,我是一个初级程序员,所以我真的很抱歉我的愚蠢问题。

我有一个字符串。我想用 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 变量位于计算机内存中的不同位置。

关于C - 在字符串上使用 scanf 获取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40704557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com