查找字符串中是否存在某些字符

时间:2013-08-14 08:20:15

标签: c++ arrays string char find

我有以下代码,想看看字符串' userFirstName'包含char数组中的任何字符。如果是字符串,我希望它要求用户重新输入他们的名字,然后检查新名称是否有无效字符等等。

char invalidCharacter[] = { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '~', '`',             
    ';', ':', '+', '=', '-', '_', '*', '/', '.', '<', '>', '?', ',', '[', ']', '{', '}',
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

cout << "Please enter your first name: " << endl;
cin >> userFirstName;`

1 个答案:

答案 0 :(得分:2)

使用string::find_first_of来执行此操作。

假设userFirstNamestring

size_t pos = userFirstName.find_first_of(invalidChars, 0, sizeof(invalidChars));
if (pos != string::npos) {
    // username contains an invalid character at index pos
}