We compare characters and strings to check if they are the same or different. Characters are single letters, while strings are groups of letters.
Character vs string comparison in C++
char c = 'a'; std::string s = "a"; // Compare character to character if (c == 'a') { // do something } // Compare string to string if (s == "a") { // do something } // Comparing char to string directly is not allowed // if (c == s) { // error } // To compare char and string, convert char to string first if (std::string(1, c) == s) { // do something }
Characters use single quotes: 'a'. Strings use double quotes: "a".
You cannot compare a char and a string directly in C++ without conversion.
char c = 'x'; if (c == 'x') { // true }
std::string s = "hello"; if (s == "hello") { // true }
char c = 'a'; std::string s = "a"; if (std::string(1, c) == s) { // true }
This program shows how to compare a character to a character literal, a string to a string literal, and how to compare a character to a string by converting the character to a string first.
#include <iostream> #include <string> int main() { char c = 'g'; std::string s = "g"; if (c == 'g') { std::cout << "Character matches 'g'\n"; } if (s == "g") { std::cout << "String matches \"g\"" << std::endl; } // Direct comparison (char == string) is not allowed // So convert char to string first if (std::string(1, c) == s) { std::cout << "Char and string are equal after conversion" << std::endl; } return 0; }
Remember to use single quotes for characters and double quotes for strings.
Trying to compare a char and a string directly will cause a compile error in C++.
Use std::string(1, c) to convert a char to a string of length 1.
Characters and strings are different types in C++.
You can compare characters to characters and strings to strings directly.
To compare a character with a string, convert the character to a string first.