Bird
Raised Fist0
DSA C++programming~5 mins

String Traversal and Character Access in DSA C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does string traversal mean?
String traversal means going through each character in a string one by one, usually from start to end.
Click to reveal answer
beginner
How do you access the third character of a string named str in C++?
You use str[2] because indexing starts at 0, so the third character is at position 2.
Click to reveal answer
intermediate
What happens if you try to access a character outside the string length in C++?
Accessing outside the string length causes undefined behavior, which can lead to errors or crashes.
Click to reveal answer
beginner
Show a simple C++ loop to print all characters of a string str.
for (int i = 0; i < str.size(); i++) { std::cout << str[i]; }
Click to reveal answer
beginner
Why is it important to use str.size() or str.length() in loops?
Using str.size() or str.length() ensures you only access valid characters and avoid errors.
Click to reveal answer
What is the index of the first character in a C++ string?
A-1
B1
CDepends on the string
D0
Which of these is the correct way to get the length of a string str in C++?
ABoth A and B
Bstr.size()
Cstr.count()
Dstr.length()
What will happen if you access str[str.size()]?
AAccesses the last character
BUndefined behavior (error or crash)
CReturns null character
DReturns first character
Which loop correctly traverses all characters of a string str?
Afor (int i = 1; i <= str.size(); i++)
Bfor (int i = 0; i <= str.size(); i++)
Cfor (int i = 0; i < str.size(); i++)
Dfor (int i = 1; i < str.size(); i++)
How do you print the second character of a string str?
Astd::cout << str[1];
Bstd::cout << str[2];
Cstd::cout << str[0];
Dstd::cout << str[3];
Explain how to traverse a string in C++ and print each character.
Think about using a for loop and the string's size() method.
You got /3 concepts.
    Describe what happens if you try to access a character beyond the last index of a string.
    Consider what happens when you go outside the string length.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the expression str[i] do when str is a string in C++?
      easy
      A. Returns the length of the string
      B. Accesses the character at index i in the string
      C. Deletes the character at index i
      D. Converts the string to uppercase

      Solution

      1. Step 1: Understand string indexing in C++

        In C++, strings are like arrays of characters. Using str[i] accesses the character at position i.
      2. Step 2: Clarify what str[i] returns

        The expression returns the character stored at index i without modifying the string.
      3. Final Answer:

        Accesses the character at index i in the string -> Option B
      4. Quick Check:

        str[i] = character at i [OK]
      Hint: Remember strings are arrays of chars; indexing gets a character [OK]
      Common Mistakes:
      • Thinking it returns string length
      • Assuming it deletes characters
      • Confusing with string case conversion
      2. Which of the following is the correct way to loop through each character of a string str in C++?
      easy
      A. for (int i = 0; i <= str.length(); i++)
      B. for (int i = 1; i < str.length(); i++)
      C. for (int i = 0; i < str.length(); i++)
      D. for (int i = 1; i <= str.length(); i++)

      Solution

      1. Step 1: Understand string length and indexing

        String indices start at 0 and go up to str.length() - 1. So loop must run while i < str.length().
      2. Step 2: Check loop conditions

        for (int i = 0; i < str.length(); i++) uses i < str.length() starting from 0, which correctly covers all characters without going out of bounds.
      3. Final Answer:

        for (int i = 0; i < str.length(); i++) -> Option C
      4. Quick Check:

        Loop from 0 to length-1 [OK]
      Hint: Loop from 0 to less than length to avoid out-of-bounds [OK]
      Common Mistakes:
      • Using <= causes out-of-bounds error
      • Starting loop at 1 misses first character
      • Confusing length with last index
      3. What is the output of the following C++ code?
      std::string s = "hello";
      for (int i = 0; i < s.length(); i++) {
          if (s[i] == 'l') {
              std::cout << i << " ";
          }
      }
      medium
      A. 0 1
      B. 1 2
      C. 3 4
      D. 2 3

      Solution

      1. Step 1: Identify characters and their indices

        The string "hello" has characters: h(0), e(1), l(2), l(3), o(4).
      2. Step 2: Check which indices have 'l'

        Characters at indices 2 and 3 are 'l', so those indices are printed.
      3. Final Answer:

        2 3 -> Option D
      4. Quick Check:

        Indices of 'l' = 2 3 [OK]
      Hint: Check string indices carefully for matching characters [OK]
      Common Mistakes:
      • Confusing character positions
      • Printing characters instead of indices
      • Off-by-one errors in indexing
      4. Identify the error in this code snippet that tries to print all characters of a string str:
      for (int i = 0; i <= str.length(); i++) {
          std::cout << str[i];
      }
      medium
      A. Using <= causes out-of-bounds access
      B. Missing semicolon after for loop
      C. str[i] cannot be used to access characters
      D. Loop variable should be unsigned

      Solution

      1. Step 1: Analyze loop condition

        The loop runs while i <= str.length(), which means it tries to access str[str.length()].
      2. Step 2: Understand string indexing limits

        Valid indices are from 0 to str.length() - 1. Accessing str[str.length()] is out-of-bounds and causes undefined behavior.
      3. Final Answer:

        Using <= causes out-of-bounds access -> Option A
      4. Quick Check:

        Loop must use <, not <= [OK]
      Hint: Use < not <= to avoid accessing past string end [OK]
      Common Mistakes:
      • Using <= instead of < in loop condition
      • Assuming string length is last index
      • Ignoring out-of-bounds errors
      5. Given a string str, how can you create a new string containing only the vowels from str using traversal and character access in C++?
      hard
      A. Loop through str, check if each character is a vowel, and append it to a new string
      B. Use str.substr() to extract vowels directly
      C. Replace all consonants with spaces in str
      D. Sort the string and pick vowels from the start

      Solution

      1. Step 1: Traverse the string character by character

        Use a loop to access each character in str using indexing.
      2. Step 2: Check if character is a vowel and build new string

        If the character is one of 'a', 'e', 'i', 'o', 'u' (case-insensitive), append it to a new string variable.
      3. Step 3: Return or print the new string

        After the loop, the new string contains only vowels from the original string.
      4. Final Answer:

        Loop through str, check if each character is a vowel, and append it to a new string -> Option A
      5. Quick Check:

        Filter vowels by checking each character [OK]
      Hint: Check each char; add vowels to new string [OK]
      Common Mistakes:
      • Trying to extract vowels without looping
      • Using substr incorrectly
      • Sorting string changes 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