How can I find a first or last character that is not a character that i am searching in a string? What kind of methods I can use in my C++ apps to find the first character equal to NONE of the characters in the given string in a std::string? How can I use find_first_not_of(), find_last_not_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 words, 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 that 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 the first or last character equal to none of the characters in the given string by using find_first_not_of() and find_last_not_of() methods.
How to search a string with the find_first_not_of() method in C++?
The find_first_not_of() Method is a String Method that searches given character in this method and finds the first character position from the string that is not a given character. In another term, the find_first_not_of() method finds the first character equal to none of the characters in the given string or character sequence. If the character is not present method returns the npos of the string (std::string::npos).
Simply we can find the first character equal to none of the characters in the given string by using its find_first_not_of() method as given syntax.
What is the syntax of the find_first_not_of() C++ method?
1 2 3 4 5 |
size_type find_first_not_of( const basic_string& str) const noexcept; size_type find_first_not_of( const basic_string& str, size_type position) const noexcept; |
Here we can find a character of a string in another string by using its find_first_not_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_not_of("-"); // find the first character from a string which is not '-' 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; } |
Output of this code will be as below,
1 2 3 |
The First Character found at 5 |
as you see we find the first character after the ‘-‘ characters in our string
How can I search a string with the find_last_not_of() method in C++?
The find_last_not_of() Method is a String Method that search given character in this method and finds the last character position from string that is not a given character. In another term, find_last_not_of() method finds the last character equal to none of the characters in the given string or character sequence. If the character is not present method returns the npos of the string (std::string::npos).
Simply we can find the last character equal to none of the characters in the given string by using its find_last_not_of() method as given syntax.
Syntax:
1 2 3 4 5 |
size_type find_last_not_of( const basic_string& str) const noexcept; size_type find_last_not_of( const basic_string& str, size_type position) const noexcept; |
Here we can find a character of a string in another string by using its find_last_not_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 |
#include <iostream> #include <string> int main() { int pos = str.find_last_not_of("-"); // find the last character from a string which is not '-' 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 22 |
as you see we find the last character before the last ‘-‘ characters in our string
Design. Code. Compile. Deploy.
Start Free Trial
Free C++Builder Community Edition