How can I search only a single character in a string in my C++ apps? What kind of methods I can use to find a character in a std::string? How can I use find_first_of(), find_last_of() methods with strings?
Modern C++ uses Strings, Wide Strings, and Unicode Strings to support worldwide languages. Strings (std::string) uses char as the character type which means they are ASCII chars and they are an instantiation of the basic_string class template. In C++, there are several typedefs for common character types and one of them is std::string types that are defined in header <string>.
strings are the string class for byte characters represented with string and alphanumeric characters are stored and displayed in string forms. In other terms, string stores the alphanumeric text with 1-byte chars called char. Strings are the instantiation of the basic_string class template that uses char as the character type. In modern C++, simply we can define a string as below,
1 2 3 |
std::string str = "This is a String"; |
Strings (string) are a class contains arrays of characters with useful methods, and we can access, or modify their characters easily. In C++, while string contents are defined between ” and “, characters are defined between ‘ and ‘.
The string has methods to append, assign, copy, align, replace or operate with other strings. These methods can be used in all string methods with their appropriate syntax. We can find characters in a string by using find_first_of() and find_last_of() methods.
Table of Contents
How to search a string with the find_first_of() method in C++?
The find_first_of() Method is a String Method that finds the first character of a string (a character sequence) in another string. In this method it searches only for a single character in a string. If the character is not present in the string it returns the npos of the string (std::string::npos).
Simply we can find a character of a string in another string by using its find_first_of() method as given syntax.
What is the syntax of find_first_of()?:
1 2 3 4 |
size_type find_first_of( const basic_string& str) const; size_type find_first_of( const basic_string& str, size_type position) const; |
Here we can find a character of a string in another string by using its find_first_of() method as given full example below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iostream> #include <string> int main() { std::string str = std::string("LearnCPlusPlus.org"); int pos = str.find_first_of("r"); // find the first character from a string, here it is 'r' if( pos != std::string::npos ) { std::cout << "The First Character found at " << pos << std::endl; } else { std::cout << "The First Charcater not found" << std::endl; } getchar(); return 0; } |
The output of this code will be as below,
1 2 3 |
The First Character found at 3 |
As you see here, we find the first ‘r’ character in our string at the position 3
How do I search a string with the find_last_of() method in C++?
The find_last_of() Method is a String Method that finds the last character of a string (a character sequence) in another string. In this method it search only a single character while the search is a string. If the character is not present in a string it, returns the npos of the string (std::string::npos).
Simply we can find a character of a string in another string by using its find_last_of() method as given syntax.
What is the syntax of the find_last_of() C++ method?
1 2 3 4 |
size_type find_last_of( const basic_string& str) const; size_type find_last_of( const basic_string& str, size_type position) const; |
Here we can find a character of a string in another string by using its find_last_of() method as given full example below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iostream> #include <string> int main() { std::string str = std::string("LearnCPlusPlus.org"); int pos = str.find_last_of("r"); // find the last character from from a string, here it is 'r' if( pos != std::string::npos ) { std::cout << "The Last Character found at " << pos << std::endl; } else { std::cout << "The Last Charcater not found" << std::endl; } getchar(); return 0; } |
The output of this code will be as below,
1 2 3 |
The Last Character found at 16 |
as you see we found the last ‘r’ character which is in “.org” part at the position 16.
Design. Code. Compile. Deploy.
Start Free Trial
Free C++Builder Community Edition