我有以下代码,想看看字符串' userFirstName'包含char数组中的任何字符。如果是字符串,我希望它要求用户重新输入他们的名字,然后检查新名称是否有无效字符等等。
char invalidCharacter[] = { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '~', '`',
';', ':', '+', '=', '-', '_', '*', '/', '.', '<', '>', '?', ',', '[', ']', '{', '}',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
cout << "Please enter your first name: " << endl;
cin >> userFirstName;`
答案 0 :(得分:2)
使用string::find_first_of
来执行此操作。
假设userFirstName
是string
:
size_t pos = userFirstName.find_first_of(invalidChars, 0, sizeof(invalidChars));
if (pos != string::npos) {
// username contains an invalid character at index pos
}