std::string::find_first_not_of in C++

11 Jul, 2017
It searches the string for the first character that does not match any of the characters specified in its arguments. Here we will describe all syntaxes it holds.Return value : Index of first unmatched character when successful or string::npos if no such character found.
Syntax 1: Search for the first character that is not an element of the string str.
size_type string::find_first_not_of (const string& str) const
str : Another string with the set of characters
to be used in the search.

// CPP code for find_first_not_of (const string& str) const    #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str1, string str2){    // Finds first character in str1 which    // is not present in str2    string::size_type ch = str1.find_first_not_of(str2);    cout << "First unmatched character : ";    cout << str1[ch];}           // Driver codeint main(){    string str1("Hello World!");    string str2("GeeksforGeeks");       cout << "Original String : " << str1 << endl;    cout << "String to be looked in : " << str2 << endl;    find_first_not_ofDemo(str1, str2);        return 0;}
Output:
Original String : Hello World!
String to be looked in : GeeksforGeeks
First unmatched character : H

Syntax 2: Search for the first character from index idx that is not an element of the string str.
size_type string::find_first_not_of (const string& str, size_type idx) const
str : Another string with the set of characters
to be used in the search.
idx : is the index number from where we have to
start finding first unmatched character.

// CPP code for string::find_first_not_of// (const string& str, size_type idx) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str1, string str2){    // Finds first character in str1 from index 3 which    // is not present in str2    string::size_type ch = str1.find_first_not_of(str2, 3);    cout << "First unmatched character : ";    cout << str1[ch];}           // Driver codeint main(){    string str1("geeKsforgeeks");    string str2("GeeksforGeeks");       cout << "Original String : " << str1 << endl;    cout << "String to be looked in : " << str2 << endl;    find_first_not_ofDemo(str1, str2);        return 0;}
Output:
Original String : geeKsforgeeks
String to be looked in : GeeksforGeeks
First unmatched character : K

Syntax 3: Searches for the first character that is or is not also an element of the C-string cstr.
size_type string::find_first_not_of (const char* cstr) const
cstr : Another C-string with the set of characters
to be used in the search.

Note that cstr may not be a null pointer (NULL).
// CPP code for string::find_first_not_of (const char* cstr) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str){    // Finds first character in str which    // is not present in "geeksforgeeks"    string::size_type ch = str.find_first_not_of("geeksforgeeks");    cout << "First unmatched character : ";    cout << str[ch];}           // Driver codeint main(){    string str("GeeksforGeeks");       cout << "Original String : " << str << endl;    find_first_not_ofDemo(str);        return 0;}
Output:
Original String : GeeksforGeeks
First unmatched character : G

Syntax 4: Search for the first character from index idx that is not an element of the C-string cstr
size_type string:: find_first_not_of (const char* cstr, size_type idx) const
cstr : Another string with the set of characters
to be used in the search.
idx : is the index number from where we have to
start finding first unmatched character.

Note that cstr may not be a null pointer (NULL).
// CPP code for size_type string:: find_first_not_of // (const char* cstr, size_type idx) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str){    // Finds first character in str from 5th index which    // is not present in "geeksforgeeks"    string::size_type ch = str.find_first_not_of("geeksForgeeks", 5);    cout << "First unmatched character : ";    cout << str[ch];}           // Driver codeint main(){    string str("GeeksforGeeks");       cout << "Original String : " << str << endl;    find_first_not_ofDemo(str);        return 0;}
Output:
Original String : GeeksforGeeks
First unmatched character : f

Syntax 5: Finds first character in str which is not equal to char c.
size_type string::find_first_not_of (char c) const
c Character c with which contents of str are required to be compared.

// CPP code for size_type string:: find_first_not_of (char c) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str){    // Finds first character in str which    // is not equal to character 'G'    string::size_type ch = str.find_first_not_of('G');    cout << "First unmatched character : ";    cout << str[ch];}           // Driver codeint main(){    string str("GeeksforGeeks");       cout << "Original String : " << str << endl;    find_first_not_ofDemo(str);        return 0;}
Output:
Original String : GeeksforGeeks
First unmatched character : e

Syntax 6: Finds first character in str from index idx which is not equal to char c.
size_type string::find_first_not_of (char c, size_type idx) const
c : Character c with which contents of str
are required to be compared.
idx :  index from where search of the first
unmatched character is to be started

// CPP code for size_type string::find_first_not_of // (char c, size_type idx) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str){    // Finds first character in str from 6th index which    // is not equal to character 'G'    string::size_type ch = str.find_first_not_of('G', 6);    cout << "First unmatched character : ";    cout << str[ch];}           // Driver codeint main(){    string str("GeeksforGeeks");       cout << "Original String : " << str << endl;    find_first_not_ofDemo(str);        return 0;}
Output:
Original String : GeeksforGeeks
First unmatched character : o

Syntax 7: Search for the first character that is also not an element of the chars_len characters of the character array chars, starting at index idx.
size_type string::find_first_not_of 
(const char* chars, size_type idx, size_type chars_len) const
*chars : is the character array with which 
searching of first unmatched is to be performed.
idx :  index number in string
chars_len : is the character length in 
*chars to be picked for searching purpose

// CPP code for size_type string::find_first_not_of // (const char* chars, size_type idx, size_type chars_len) const  #include <iostream>using namespace std;    // Function to demonstrate find_first_not_ofvoid find_first_not_ofDemo(string str){    // Finds first character in str from 4th index which    // is not equal to any of the first 3 characters from "svmnist"    string::size_type ch = str.find_first_not_of("svmnist", 4, 3);    cout << "First unmatched character : ";    cout << str[ch];}           // Driver codeint main(){    string str("GeeksforGeeks");       cout << "Original String : " << str << endl;    find_first_not_ofDemo(str);        return 0;}
Output:
Original String : GeeksforGeeks
First unmatched character : f

This article is contributed by Sakshi Tiwari. If you like GeeksforGeeks(We know you do!) and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
cpp-strings-library
STL
C++
STL
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Sorting a vector in C++
Polymorphism in C++
std::string class in C++
Friend class and function in C++
Pair in C++ Standard Template Library (STL)
Queue in C++ Standard Template Library (STL)
Unordered Sets in C++ Standard Template Library
List in C++ Standard Template Library (STL)
std::find in C++
Inline Functions in C++