gpt4 book ai didi

c - 测试整数时 sscanf() 无法正常工作

转载 作者:行者123 更新时间:2023-11-30 15:50:23 24 4
gpt4 key购买 nike

嗨,我正在尝试使用 sscanf 来测试字符串是否为整数,但它总是给出零作为返回值(j),并且当它给出 1(有时没有任何更改)时,它不会在应收帐款中填充正确的值变量(i)!这是我的代码:

#include <stdio.h>                               

int main ()
{

char sentence []="123456";
int i=0;

j = sscanf(sentence,"%[0-9]",&i);
return 0;
}

请让我知道我哪里出错了!我知道还有其他方法可以测试字符串的整数,但我想知道我哪里出错了!非常感谢您的帮助!提前致谢

最佳答案

如果您想使用 sscanf()仅验证数字(我不建议您这样做),那么您的格式已关闭。您必须仅使用字符类型来收集提取的数据:

试试这个:

char message[] = "123456";
char buffer[128];

if (sscanf(message, "%127[0-9]",buffer) == 1)
printf("Success : %s\n", buffer);

并尝试使用范围(例如,将其更改为 [2-9])以帮助理解基于集合的提取的工作原理。但同样,您只能将它们放入字符类型缓冲区中。

也就是说,如果您需要该值,或者只是想验证数字内容,请使用 strtol()atoi()(但仅在必须时),isdigit() 可能更合适。你决定。

关于c - 测试整数时 sscanf() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802128/

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