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

C++ 查找字符串中是否存在某些字符,c++,arrays,string,char,find,C++,Arrays,String,Char,Find,我有下面的代码,想看看字符串“userFirstName”是否包含char数组中的任何字符。如果字符串是,我希望它要求用户重新输入他们的名字,然后检查新名称中是否有无效字符等等 char invalidCharacter[] = { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '~', '`', ';', ':', '+', '=', '-', '_', '*', '/', '.', '<',

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

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

cout << "Please enter your first name: " << endl;
cin >> userFirstName;`
char invalidCharacter[]={'!'、'@'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')、'~'、'`,
';', ':', '+', '=', '-', '_', '*', '/', '.', '', '?', ',', '[', ']', '{', '}',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
cout用户名`
使用它

假设
userFirstName
字符串

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