std::string::rfind in C++ with Examples

26 May, 2022
The std::string::rfind is a string class member function that is used to search the last occurrence of any character in the string. If the character is present in the string then it returns the index of the last occurrence of that character in the string else it will return string::npos which denotes the pointer is at the end of the string. Header File:
#include < string >
Syntax 1:
rfind(char ch)
rfind(string str)
Parameters: This function takes a given character or a string as a parameter, whose index is to be found. Return value: This method returns the position of the last occurrence of that character or first index of the last occurrence of the string. Program 1: Below is the program to illustrate string::rfind(char ch): 
CPP
// C++ program to demonstrate// rfind() method #include <cstddef>#include <iostream>#include <string>using namespace std; // Function to return last occurrence// of character in a stringvoid findLastOccurrence(string str, char ch){     // To store the index of the result    size_t found;     // Function to find the last    // occurrence of character ch    // in string str    found = str.rfind(ch);     // If string doesn't have    // character ch present in it    if (found == string::npos) {        cout << "Character " << ch             << " is not present in"             << " the given string.";    }     // Else print the position    else {        cout << "The last occurrence of '"             << ch << "' is found at index: "             << found << endl;    }} // Driver Codeint main(){    // Given String    string str("Welcome to GeeksforGeeks!");     // Character to be found    char ch = 'e';     findLastOccurrence(str, ch);}
Program 2: Below is the program to illustrate string::rfind(string str): 
CPP
// C++ program to demonstrate// rfind() method #include <cstddef>#include <iostream>#include <string>using namespace std; // Function to return last occurrence// of string in a stringvoid findLastOccurrence(string str, string s){     // To store the index of the result    size_t found;     // Function to find the first index    // of last occurrence of string s in str    found = str.rfind(s);     // If string doesn't have    // string s present in it    if (found == string::npos) {        cout << "String '" << s             << "' is not present in"             << " the given string.";    }     // Else print the position    else {        cout << "The first index of last "             << "occurrence of '" << s             << "' is found at index: "             << found << endl;    }} // Driver Codeint main(){    // Given String    string str("Welcome to GeeksforGeeks!");     // string to be found    string s = "to";     findLastOccurrence(str, s);}
Syntax 2:
rfind(char ch, size_t position);
rfind(string s, size_t position); 
Parameters: This function takes:
a given character or a string as a parameter, whose index is to be found.
a position till where the search is to be performed.
Return value: This method returns the position of the first character of the last match of that given character or string before that position else it returns string::npos Program 3: Below is the program to illustrate string::rfind(char ch, size_t position): 
CPP
// C++ program to illustrate the function// string::rfind(char ch, size_t pos) #include <cstddef>#include <iostream>#include <string>using namespace std; // Function to return last occurrence// of character in a stringvoid findLastOccurrence(    string str, char ch, size_t position){     // To store the index of the result    size_t found;     // Function to find the last occurrence    // of character ch in str before pos 5    found = str.rfind(ch, position);     // If string doesn't have    // character ch present in it    if (found == string::npos) {        cout << "Character " << ch             << " is not present in"             << " the given string.";    }     // Else print the position    else {        cout << "The last occurrence of "             << ch << " before position "             << position             << " is found at index: "             << found << endl;    }} // Driver Codeint main(){    // Given String    string str("Welcome to GeeksforGeeks!");     // Character to be found    char ch = 'e';     // Position till where    // the search is to be done    size_t position = 5;     findLastOccurrence(str, ch, position);}
Program 4: Below is the program to illustrate string::rfind(string str, size_t position): 
CPP
// C++ program to illustrate the function// string::rfind(string str, size_t pos)#include <cstddef>#include <iostream>#include <string>using namespace std; // Function to return last occurrence// of string in a stringvoid findLastOccurrence(    string str, string s, size_t position){     // To store the index of result    size_t found;     // Function to find the last occurrence of    // string s in str before given position    found = str.rfind(s, position);     // If string doesn't have    // string s present in it     // If string doesn't have    // string s present in it    if (found == string::npos) {        cout << "String " << s             << " is not present in"             << " the given string.";    }     // Else print the position    else {        cout << "The last occurrence of "             << s << " before position "             << position             << " is found at index: "             << found << endl;    }} // Driver Codeint main(){     // Given String    string str("Welcome to GeeksforGeeks!");     // string to be found    string s = "to";     // Position till where    // the search is to be done    size_t position = 5;     findLastOccurrence(str, s, position);}
nikhatkhan11
C-Library
cpp-strings
C++
Searching
Strings
cpp-strings
Searching
Strings
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++
Pair in C++ Standard Template Library (STL)
Friend class and function in C++
std::string class in C++
Binary Search
Maximum and minimum of an array using minimum number of comparisons
Linear Search
K'th Smallest/Largest Element in Unsorted Array | Set 1
Search an element in a sorted and rotated array