Finding characters in a string

suggest change

To find a character or another string, you can use std::string::find. It returns the position of the first character of the first match. If no matches were found, the function returns std::string::npos

#include <iostream>
#include <string>

using namespace std;
 
int main() {
    std::string str = "Curiosity killed the cat";
    auto it = str.find("cat");
    
    if (it != std::string::npos)
        std::cout << "Found at position: " << it << '\n';
    else
        std::cout << "Not found!\n";
}
Found at position: 21

The search opportunities are further expanded by the following functions:

find_first_of     // Find first occurrence of characters 
find_first_not_of // Find first absence of characters 
find_last_of      // Find last occurrence of characters 
find_last_not_of  // Find last absence of characters

These functions can allow you to search for characters from the end of the string, as well as find the negative case (ie. characters that are not in the string). Here is an example:

#include <iostream>
#include <string>

using namespace std;
 
int main() {
    std::string str = "dog dog cat cat";
    std::cout << "Found at position: " << str.find_last_of("gzx") << '\n';
}
Found at position: 6

Note: Be aware that the above functions do not search for substrings, but rather for characters contained in the search string. In this case, the last occurrence of 'g' was found at position 6 (the other characters weren’t found).

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:


std::string:
* Finding characters in a string

Table Of Contents
8 Arrays
11 Loops
20 std::string
39 Streams
51 Unions
56 Lambdas
60 SFINAE
62 RAII
67 Sorting
84 RTTI
87 Scopes
104 Profiling
107 Recursion
117 Iteration
125 Alignment
134 Semaphore
136 Debugging
139 Mutexes
142 decltype