Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 逐字阅读,看它是否是数字_C++_String_Character - Fatal编程技术网

C++ 逐字阅读,看它是否是数字

C++ 逐字阅读,看它是否是数字,c++,string,character,C++,String,Character,我需要这个if语句的帮助。我试着读每个字符,看看它是否是一个数字。如果它不是一个数字,那么说它不是一个数字,如果它继续读到下一个字符。例如,如果用户输入54gr 21 gr42 134 3f3。唯一可能的是21和134 #include <iostream> // libraries #include <iomanip> #include <string> using namespace std; int main() { char string

我需要这个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;
    }
    } 
#包括//库
#包括
#包括
使用名称空间std;
int main()
{
字符串[80];
//字符数[80];
//炭好[80];

cout='0'&&string[count]我不会尝试逐字符执行此操作。问题是,直到您读取到非空格字符字符串的末尾,以验证所有内容都是数字的合法部分,您才知道
5
实际上是数字的一部分

因此,我认为您需要/希望将输入分解为“单词”,然后检查每个完整的单词是否可以完全转换为数字。您只需
some\u stream>>some\u string;


一旦你有了一个“单词”,你就要检查你是否能把它完全转换成一个数字。假设你想要整数,你可以使用
strtol
把它转换成一个数字。这会给你一个指针,指向它不能转换成数字的第一个字符。如果这不是字符串的结尾,那么这个“单词”就不是一个数字(即使它以一个或多个数字开头/包含一个或多个数字)

你差不多在那里。问题是什么?数字有很多形式。你不处理小数点或指数。本地化是重要的吗?如果这变得更复杂。为什么,当你在C++土地中,使用一个字符AREY,可以使用一个<代码> STD::String < /代码>?我甚至不知道问题是什么。不起作用?