小编And*_*son的帖子

C++:使用isdigit检查字符串字符是否为数字..

我正在使用getline在循环中读取我的程序的输入.

    string temp(STR_SIZE, ' ');
    string str_num(STR_SIZE, ' ');
    ...
    getline(cin, temp, '\n');
Run Code Online (Sandbox Code Playgroud)

之后,我使用一个函数来查找下一个分隔符(空格)并将空格前的所有字符分配给str_num.看起来像这样:

    str_num.assign(temp, 0, next_white_space(0));
Run Code Online (Sandbox Code Playgroud)

我已经证实这很有效.我的解决方案的下一步是将str_num转换为int(这部分也很好),但我应该检查以确保str_num中的每个字符都是一个数字.这是我尝试过的最好的东西:

    if(!isdigit(str_num[0] - '0')) {
        cout << "Error: Not an appropriate value\n";
        break; /* Leave control structure */
    }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它始终打印错误消息并退出结构.这是为什么?我之前使用了operator []作为字符串对象,它似乎运行良好.但是,在这里,它完全搞砸了我.

谢谢.

c++ string

0
推荐指数
1
解决办法
5087
查看次数

标签 统计

c++ ×1

string ×1