Bird
Raised Fist0
C++programming~20 mins

String handling basics in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Handling Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of string concatenation and length
What is the output of this C++ code snippet?
C++
#include <iostream>
#include <string>

int main() {
    std::string a = "Hello";
    std::string b = "World";
    std::string c = a + " " + b;
    std::cout << c << " " << c.length() << std::endl;
    return 0;
}
AHello World 10
BHelloWorld 10
CHello World 11
DHelloWorld 11
Attempts:
2 left
💡 Hint
Remember that adding a space between strings adds one character to the length.
❓ Predict Output
intermediate
2:00remaining
Output of string find method
What will this program print?
C++
#include <iostream>
#include <string>

int main() {
    std::string s = "programming";
    size_t pos = s.find("gram");
    std::cout << pos << std::endl;
    return 0;
}
A3
B0
C-1
D7
Attempts:
2 left
💡 Hint
The find method returns the index where the substring starts.
❓ Predict Output
advanced
2:00remaining
Output of string substr and concatenation
What is the output of this code?
C++
#include <iostream>
#include <string>

int main() {
    std::string s = "abcdef";
    std::string t = s.substr(1, 3) + s.substr(4);
    std::cout << t << std::endl;
    return 0;
}
Abcdef
Bfedcb
Ccdef
Dbcde
Attempts:
2 left
💡 Hint
Check carefully the substr parameters and concatenation.
❓ Predict Output
advanced
2:00remaining
Output of string comparison
What does this program print?
C++
#include <iostream>
#include <string>

int main() {
    std::string a = "apple";
    std::string b = "banana";
    if (a < b) {
        std::cout << "a < b" << std::endl;
    } else {
        std::cout << "a >= b" << std::endl;
    }
    return 0;
}
ARuntime error
Ba >= b
CCompilation error
Da < b
Attempts:
2 left
💡 Hint
Strings are compared lexicographically (dictionary order).
❓ Predict Output
expert
2:00remaining
Output of string erase and insert
What is the output of this program?
C++
#include <iostream>
#include <string>

int main() {
    std::string s = "hello world";
    s.erase(5, 1);
    s.insert(5, ",");
    std::cout << s << std::endl;
    return 0;
}
Ahello world
Bhello,world
Chello, world
Dhelloworld
Attempts:
2 left
💡 Hint
Erase removes the space, insert adds a comma at the same position.

Practice

(1/5)
1. What does the following C++ code do?
std::string s = "Hello";
int len = s.length();
easy
A. Changes the string s to "length"
B. Stores the length of the string "Hello" in variable len
C. Prints the string length to the screen
D. Deletes the string s

Solution

  1. Step 1: Understand the string initialization

    The code creates a string variable s with the value "Hello".
  2. Step 2: Understand the length() function

    The length() function returns the number of characters in the string, which is 5 for "Hello".
  3. Final Answer:

    Stores the length of the string "Hello" in variable len -> Option B
  4. Quick Check:

    string length = 5 [OK]
Hint: length() returns number of characters in a string [OK]
Common Mistakes:
  • Thinking length() changes the string
  • Confusing length() with printing
  • Assuming length() deletes the string
2. Which of the following is the correct way to declare and initialize a string in C++?
easy
A. std::string s = "Hello";
B. string s = 'Hello';
C. char s = "Hello";
D. string s = Hello;

Solution

  1. Step 1: Check string declaration syntax

    In C++, strings are declared using std::string and initialized with double quotes "".
  2. Step 2: Analyze each option

    std::string s = "Hello"; uses std::string with double quotes correctly. string s = 'Hello'; uses single quotes which are for single characters. char s = "Hello"; uses char which holds one character, not a string. string s = Hello; misses quotes around Hello.
  3. Final Answer:

    std::string s = "Hello"; -> Option A
  4. Quick Check:

    Correct string syntax uses std::string and double quotes [OK]
Hint: Use std::string and double quotes for strings [OK]
Common Mistakes:
  • Using single quotes for strings
  • Using char for multiple characters
  • Forgetting quotes around text
3. What is the output of this C++ code?
std::string s = "Hello";
char c = s[1];
std::cout << c << std::endl;
medium
A. o
B. H
C. l
D. e

Solution

  1. Step 1: Understand string indexing

    Strings in C++ are zero-indexed, so s[0] = 'H', s[1] = 'e'.
  2. Step 2: Identify the character at index 1

    The code stores s[1] in c, which is 'e', then prints it.
  3. Final Answer:

    e -> Option D
  4. Quick Check:

    Index 1 character = 'e' [OK]
Hint: Remember string indexing starts at 0 [OK]
Common Mistakes:
  • Thinking indexing starts at 1
  • Confusing characters at different positions
  • Expecting the whole string instead of one char
4. Find the error in this code snippet:
std::string s = "Hello";
char c = s.at(5);
std::cout << c << std::endl;
medium
A. No error, prints 'o'
B. Compilation error: cannot assign char
C. Runtime error: out_of_range exception
D. Syntax error: wrong function name

Solution

  1. Step 1: Check string length and indexing

    The string "Hello" has length 5, valid indices are 0 to 4.
  2. Step 2: Understand s.at(5) behavior

    Accessing s.at(5) is out of range and throws a runtime exception.
  3. Final Answer:

    Runtime error: out_of_range exception -> Option C
  4. Quick Check:

    Accessing index 5 causes out_of_range error [OK]
Hint: s.at(index) throws error if index invalid [OK]
Common Mistakes:
  • Assuming s.at() works like s[] without error
  • Ignoring zero-based indexing
  • Confusing syntax and runtime errors
5. Given a string std::string s = "apple,banana,cherry";, which code correctly extracts the substring "banana"?
hard
A. std::string sub = s.substr(6, 6);
B. std::string sub = s.substr(5, 6);
C. std::string sub = s.substr(6, 7);
D. std::string sub = s.substr(7, 6);

Solution

  1. Step 1: Identify the start index of "banana"

    "apple," has 6 characters (indices 0 to 5), so 'b' starts at index 6.
  2. Step 2: Determine length of "banana"

    "banana" has 6 characters.
  3. Step 3: Use substr(start, length)

    Calling s.substr(6, 6) extracts 6 characters starting at index 6, which is "banana".
  4. Final Answer:

    std::string sub = s.substr(6, 6); -> Option A
  5. Quick Check:

    substr(6,6) = "banana" [OK]
Hint: Count start index and length carefully for substr() [OK]
Common Mistakes:
  • Off-by-one errors in start index
  • Wrong length parameter
  • Confusing substr parameters order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard