user2681474
user2681474

Reputation: 15

Find if certain characters are present in a string

I have the following code and want to see if the string 'userFirstName' contains any of the characters in the char array. If the string does I want it to ask the user to reenter their first name and then check the new name for invalid characters and so on.

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

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

Upvotes: 0

Views: 1273

Answers (1)

Jon
Jon

Reputation: 437376

Use string::find_first_of to do it.

Assuming that userFirstName is a string:

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

Upvotes: 2

Related Questions