Character vs string comparison in C++ - Hands-On Comparison
letter and set it to the character 'a'.Use single quotes for characters in C++ like 'a'.
text and set it to the string "a".Include the <string> header and use double quotes for strings.
if statement to compare letter and text using ==. Inside the if, set a boolean variable isEqual to true, otherwise set it to false.Convert the character to a string using std::string(1, letter) before comparing.
"Equal" if isEqual is true, otherwise print "Not equal".Use std::cout to print the result with std::endl for a new line.
Practice
Which of the following correctly compares a character ch with another character 'a' in C++?
Solution
Step 1: Understand character vs string literals
Characters use single quotes like 'a', strings use double quotes like "a".Step 2: Compare character with character
Comparingch(char) with 'a' (char) is valid and correct.Final Answer:
if (ch == 'a') -> Option CQuick Check:
char == char comparison works directly [OK]
- Using double quotes to compare char and string
- Trying to convert char to string incorrectly
- Confusing char and string types
Which of the following is the correct syntax to compare a char variable c with a std::string variable s in C++?
Solution
Step 1: Recognize type mismatch
Directly comparingcharandstd::stringis invalid.Step 2: Convert char to string for comparison
Usestring(1, c)to create a string from the char, then compare withs.Final Answer:
if (string(1, c) == s) -> Option BQuick Check:
Convert char to string before comparing with string [OK]
- Comparing char directly with string
- Trying to cast string to char
- Using s[0] without checking string length
What will be the output of the following C++ code?
char ch = 'x';
std::string str = "x";
if (ch == str) {
std::cout << "Equal";
} else {
std::cout << "Not Equal";
}Solution
Step 1: Analyze comparison types
Comparingcharandstd::stringdirectly is not allowed in C++.Step 2: Check compilation rules
This causes a compilation error because no operator== exists for char and string.Final Answer:
Compilation error -> Option AQuick Check:
char == string causes compile error [OK]
- Assuming char and string compare equal
- Expecting runtime error instead of compile error
- Ignoring type mismatch in comparison
Identify the error in the following code snippet and choose the correct fix:
char c = 'b';
std::string s = "b";
if (c == s[0]) {
std::cout << "Match";
}Solution
Step 1: Understand types in comparison
cis a char,s[0]is a char (first character of string).Step 2: Check if comparison is valid
Comparing two chars is valid and works correctly.Final Answer:
No error, code works correctly -> Option AQuick Check:
char == s[0] compares chars correctly [OK]
- Trying to compare char with whole string
- Using s.at(1) which may be out of range
- Converting char to string unnecessarily
You want to check if a char variable ch matches any character in a std::string variable word. Which of the following is the best way to do this in C++?
Solution
Step 1: Understand the goal
We want to check ifchappears anywhere insideword.Step 2: Use string find method
word.find(ch)returns position ofchorstd::string::nposif not found.Step 3: Check if found
If result is notnpos,chis inword.Final Answer:
if (word.find(ch) != std::string::npos) -> Option DQuick Check:
Use string::find to check char in string [OK]
- Comparing whole string to single char
- Checking only first character with word[0]
- Converting char to string and comparing whole string
Ready to prove it?
Pass the test and this pattern moves unknown
