Bird
Raised Fist0
DSA C++programming~10 mins

String Traversal and Character Access in DSA C++ - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print each character of the string text using a for loop.

DSA C++
std::string text = "hello";
for (int i = 0; i < text.length(); i++) {
    std::cout << text[1] << ' ';
}
Drag options to blanks, or click blank then click option'
A<i>
B[i]
C{i}
D(i)
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of square brackets for indexing.
Using curly braces or angle brackets which are invalid for indexing.
2fill in blank
medium

Complete the code to print the last character of the string word.

DSA C++
std::string word = "world";
char lastChar = word[1];
std::cout << lastChar << std::endl;
Drag options to blanks, or click blank then click option'
A[0]
B[word.size()]
C[word.length()]
D[word.length() - 1]
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.length() as index which is out of range.
Using index 0 which is the first character, not last.
3fill in blank
hard

Fix the error in the code to correctly print each character of str using a range-based for loop.

DSA C++
std::string str = "code";
for (char c [1] str) {
    std::cout << c << ' ';
}
Drag options to blanks, or click blank then click option'
A:
Bof
Cin
Dfrom
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'in' or 'of' which are not valid in C++ range-based for loops.
Using 'from' which is invalid syntax.
4fill in blank
hard

Fill both blanks to create a map of characters to their counts from the string input.

DSA C++
std::string input = "banana";
std::map<char, int> counts;
for (char [1] : input) {
    counts[[2]]++;
}
Drag options to blanks, or click blank then click option'
Ach
Bc
Dchar
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in loop and map access causing errors.
Using reserved words like 'char' as variable names.
5fill in blank
hard

Fill all three blanks to create a vector of characters from text that are vowels.

DSA C++
std::string text = "education";
std::vector<char> vowels;
for (char [1] : text) {
    if ([2] == 'a' || [3] == 'e' || [3] == 'i' || [3] == 'o' || [3] == 'u') {
        vowels.push_back([1]);
    }
}
Drag options to blanks, or click blank then click option'
Ac
Dch
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in the condition and push_back causing errors.
Using undefined variables in the if condition.

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