提问者:小点点

如何识别输入字符串是否包含任何数字


我有个问题。

如何检查输入字符串是否包含任何数字?

程序:

>>>; 你叫什么名字?

>>>; KAM5IL

如果有像5这样的数字,程序会一直问你输入的字符串是否正确,而没有任何数字

这是正确的字符串

>>>; Kamil


共2个答案

匿名用户

std::any_of检查谓词是否为在[first,last)范围内的至少一个元素返回true

std::string name = "hel3lo";

std::cout << std::any_of( name.begin(), name.end(), ::isdigit); // print true since name has one number in it;

匿名用户

#include <iostream>
#include <string>
using namespace std;

int main()
{
    bool flag;
    string name;
    do {
        flag = false;
        cout << "Whats your name \n";
        getline(cin, name);

        for (int i = 0; i<name.length(); i++)
        {
            if (isdigit(name[i]))
            {
                cout << "contaiing digit :  " << name[i] << "\n ";
                flag = true;

            }
        }
        cout << endl;
    } while (flag == true);
    cout << "name : " << name << endl;
    system("pause");
    return 0;
}