String traversal means going through each character in a string one by one, usually from the first character to the last.
Click to reveal answer
beginner
How do you access the third character of a string 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 at an index outside the string length?
You get an IndexOutOfRangeException error because the index is invalid and does not exist in the string.
Click to reveal answer
beginner
Why is zero-based indexing important in string traversal?
Zero-based indexing means counting starts at 0, so the first character is at index 0. This helps in consistent and simple access to characters.
Click to reveal answer
beginner
Show a simple C# code snippet to print each character of a string word on a new line.
string word = "hello";
for (int i = 0; i < word.Length; i++)
{
Console.WriteLine(word[i]);
}
Click to reveal answer
What is the index of the first character in a C# string?
ADepends on the string length
B1
C0
D-1
✗ Incorrect
In C#, string indexing starts at 0, so the first character is at index 0.
Which of these will cause an error when accessing a string character?
AAccessing index 0 in a non-empty string
BAccessing index equal to string length
CAccessing index less than string length
DAccessing index 1 in a string of length 3
✗ Incorrect
Accessing an index equal to the string length is out of range and causes an error.
How do you get the length of a string text in C#?
Atext.Length
Btext.size()
Clength(text)
Dtext.len
✗ Incorrect
In C#, the property Length gives the number of characters in a string.
What will Console.WriteLine("abc"[1]); print?
Ab
Bc
Ca
DError
✗ Incorrect
Index 1 corresponds to the second character 'b' in the string "abc".
Which loop is commonly used for string traversal in C#?
Aforeach loop over integers
Bwhile loop with index
Cdo-while loop without index
Dfor loop with index
✗ Incorrect
A for loop with an index from 0 to string length - 1 is commonly used for string traversal.
Explain how to traverse a string and access each character in C#.
Think about how to use a for loop and the string's Length property.
You got /4 concepts.
What errors can happen when accessing characters in a string and how to avoid them?
Consider what happens if you use an invalid index.
You got /3 concepts.
Practice
(1/5)
1. What does the expression str[2] return when string str = "hello";?
easy
A. The character 'o'
B. The character 'l'
C. The character 'e'
D. An error because strings cannot be indexed
Solution
Step 1: Understand zero-based indexing in strings
In C#, string characters are accessed starting from index 0. So, str[0] = 'h', str[1] = 'e', str[2] = 'l'.
Step 2: Identify the character at index 2
The character at index 2 in "hello" is 'l'.
Final Answer:
The character 'l' -> Option B
Quick Check:
str[2] = 'l' [OK]
Hint: Remember string indexing starts at 0 in C# [OK]
Common Mistakes:
Thinking indexing starts at 1
Confusing characters at index 1 and 2
Assuming strings can't be indexed
2. Which of the following is the correct way to loop through each character in a string str in C#?
easy
A. for (char c = 0; c < str.Length; c++) { Console.WriteLine(str[c]); }
B. for (int i = 1; i <= str.Length; i++) { Console.WriteLine(str[i]); }
C. foreach (int c in str) { Console.WriteLine(c); }
D. for (int i = 0; i < str.Length; i++) { Console.WriteLine(str[i]); }
Solution
Step 1: Check loop indexing and range
In C#, string indexing starts at 0 and goes up to Length - 1. So the loop must run from 0 to str.Length - 1.
Step 2: Validate each option
for (int i = 0; i < str.Length; i++) { Console.WriteLine(str[i]); } uses correct indexing (0 to Length-1). for (int i = 1; i <= str.Length; i++) { Console.WriteLine(str[i]); } starts at 1 and uses <= which causes out-of-range error. foreach (int c in str) { Console.WriteLine(c); } tries to foreach over int, but string yields chars, so type mismatch. for (char c = 0; c < str.Length; c++) { Console.WriteLine(str[c]); } uses char as loop variable which is incorrect.
Final Answer:
for (int i = 0; i < str.Length; i++) { Console.WriteLine(str[i]); } -> Option D
Quick Check:
Loop from 0 to Length-1 for string traversal [OK]
Hint: Use for loop with i from 0 to str.Length - 1 [OK]
Common Mistakes:
Starting loop at 1 instead of 0
Using <= instead of < in loop condition
Using wrong variable type in foreach
3. What will be the output of the following code?
string s = "code";
for (int i = 0; i < s.Length; i++)
{
if (i % 2 == 0)
Console.Write(s[i]);
}
medium
A. co
B. oe
C. cd
D. code
Solution
Step 1: Understand the loop and condition
The loop runs from i=0 to i=3 (length 4). It prints characters only when i is even (0, 2).
Step 2: Identify characters at even indices
At i=0, s[0] = 'c'; at i=2, s[2] = 'd'. So output is "cd".
Final Answer:
cd -> Option C
Quick Check:
Print chars at even indices: 'c' and 'd' [OK]
Hint: Print characters where index % 2 == 0 [OK]
Common Mistakes:
Confusing even and odd indices
Printing all characters ignoring condition
Misreading string length
4. Identify the error in the following code snippet:
string text = "example";
for (int i = 0; i <= text.Length; i++)
{
Console.Write(text[i]);
}
medium
A. The loop condition should be < instead of <=
B. The string cannot be indexed with []
C. Variable i should be of type char
D. Console.Write should be Console.WriteLine
Solution
Step 1: Analyze loop condition and indexing
The loop runs from i=0 to i <= text.Length. Since string indices go from 0 to Length-1, accessing text[Length] causes an error.
Step 2: Correct the loop condition
Change condition to i < text.Length to avoid out-of-range exception.
Final Answer:
The loop condition should be < instead of <= -> Option A
Quick Check:
Loop must run from 0 to Length-1 [OK]
Hint: Use i < str.Length to avoid index out of range [OK]
Common Mistakes:
Using <= instead of < in loop condition
Assuming string indexing is 1-based
Changing variable type unnecessarily
5. Given a string input, which code snippet correctly counts how many vowels (a, e, i, o, u) it contains?
hard
A. int count = 0;
foreach (char c in input.ToLower()) {
if ("aeiou".Contains(c)) count++;
}
Console.WriteLine(count);
B. int count = 0;
for (int i = 1; i <= input.Length; i++) {
if ("aeiou".Contains(input[i])) count++;
}
Console.WriteLine(count);
C. int count = 0;
foreach (int c in input) {
if ("aeiou".Contains((char)c)) count++;
}
Console.WriteLine(count);
D. int count = 0;
for (char c = 0; c < input.Length; c++) {
if ("aeiou".Contains(input[c])) count++;
}
Console.WriteLine(count);
Solution
Step 1: Check correct iteration over string characters
int count = 0;
foreach (char c in input.ToLower()) {
if ("aeiou".Contains(c)) count++;
}
Console.WriteLine(count); uses foreach over chars in input.ToLower(), which is correct. int count = 0;
for (int i = 1; i <= input.Length; i++) {
if ("aeiou".Contains(input[i])) count++;
}
Console.WriteLine(count); uses 1-based indexing causing out-of-range error. int count = 0;
foreach (int c in input) {
if ("aeiou".Contains((char)c)) count++;
}
Console.WriteLine(count); uses foreach over int which is incorrect type. int count = 0;
for (char c = 0; c < input.Length; c++) {
if ("aeiou".Contains(input[c])) count++;
}
Console.WriteLine(count); uses char as loop variable which is invalid.
Step 2: Verify vowel check and counting
int count = 0;
foreach (char c in input.ToLower()) {
if ("aeiou".Contains(c)) count++;
}
Console.WriteLine(count); checks if character is in "aeiou" string and increments count correctly.
Final Answer:
Option A code snippet correctly counts vowels -> Option A
Quick Check:
Use foreach char and check vowels with Contains [OK]
Hint: Use foreach char in lowercase string and Contains("aeiou") [OK]
Common Mistakes:
Using wrong loop indices causing errors
Incorrect variable types in loops
Not converting string to lowercase before checking
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.