gpt4 book ai didi

c++ - 一个字符一个字符读取看是否是数字

转载 作者:行者123 更新时间:2023-11-30 04:28:19 25 4
gpt4 key购买 nike

我需要有关此 if 语句的帮助。我试图读取每个字符以查看它是否是一个数字。如果它不是数字,那么如果继续阅读下一个字符,则说它不是数字。例如,如果用户输入 54gr 21 gr42 134 3f3。唯一会计算的是 21 和 134。

#include <iostream> // libraries
#include <iomanip>
#include <string>

using namespace std;

int main()
{

char string[80];
// char num[80];
// char good[80];
cout << "enter a string "; // prompting user
cin.getline(string,80); // geting line
// int i = 0;
// int j = 0;
int count = 0;
{

while(string[count] != '\0') {

if(string[count] >= '0' && string[count] <= '9' )
cout << count << endl;
}
++ count;
}
}

最佳答案

我不会尝试一个字一个字地做这个。问题是您现在不知道 5 确实是数字的一部分,直到您阅读到非空格字符字符串的末尾以验证所有 内容合法地是数字的一部分。

因此,我认为您需要/想要将输入分解为“单词”,然后检查每个完整的单词是否可以完全转换为数字。您只需使用 some_stream >> some_string;

即可阅读“单词”

一旦你有了一个“词”,你就可以检查是否可以将它完全转换为一个数字。假设您需要整数,您可以使用 strtol 将其(尝试)转换为数字。这将为您提供指向它无法转换为数字的第一个字符的指针。如果那不是字符串的末尾,则该“单词”不是数字(即使它以一个或多个数字开头/包含一个或多个数字)。

关于c++ - 一个字符一个字符读取看是否是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235830/

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