gpt4 book ai didi

c - 迭代字符串输入

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

我正在尝试遍历一个字符串以查看输入是否为整数。

这是代码:

 for (int i = 1; i < strlen(buffer); i++) //Checking that each character of the string is numeric
{
if (!isdigit(buffer[i]))
{
valid = false;
break;
}
}

if(valid == false)
{
printf("Invalid input!");
}

else
{
num = atoi(buffer);
printf("The number entered is %d", num);
}

问题是即使输入正确,假设 2,输出消息仍然是“输入无效!”。

我现在很郁闷。我已经尝试使用 atoi 函数、strtol 函数和其他方法来验证数字并确保:

1) 不是字母2) 是一个整数

请帮帮我。我已经尝试解决这个问题 2 个多小时了。

最佳答案

由于 fgets 读取一行,'\n'(不是数字)可能会保留在字符串的末尾。您可以删除它:

#include <string.h>

char *pend = strrchr (buffer, '\n');

if (pend != NULL) *pend = '\0';

关于c - 迭代字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230926/

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