📖 Scenario: You are working on a simple text editor feature that needs to find if a small word or phrase exists inside a larger text. This is like searching for a word in a book.
🎯 Goal: Build a program that checks if a given pattern string is found inside a text string using substring search.
📋 What You'll Learn
Create a string variable text with the exact value "hello world, welcome to substring search"
Create a string variable pattern with the exact value "welcome"
Use a method to check if pattern is found inside text
Print "Pattern found" if the pattern exists in the text, otherwise print "Pattern not found"
💡 Why This Matters
🌍 Real World
Searching for words or phrases inside larger texts is common in text editors, search engines, and data filtering.
💼 Career
Understanding substring search is fundamental for software developers working on text processing, search features, and data analysis.
Progress0 / 4 steps
1
Create the text string
Create a string variable called text and set it to the exact value "hello world, welcome to substring search"
DSA C#
Hint
Use string text = "..."; to create the text.
2
Create the pattern string
Create a string variable called pattern and set it to the exact value "welcome"
DSA C#
Hint
Use string pattern = "welcome"; to create the pattern.
3
Check if pattern exists in text
Use if (text.Contains(pattern)) to check if pattern is found inside text
DSA C#
Hint
Use text.Contains(pattern) inside an if statement.
4
Print the result
Print "Pattern found" if the pattern exists in the text, otherwise print "Pattern not found"
DSA C#
Hint
Use Console.WriteLine("Pattern found") and Console.WriteLine("Pattern not found") inside the if and else blocks.
Practice
(1/5)
1. What is the main purpose of substring search algorithms in strings?
easy
A. To sort characters in a string alphabetically
B. To find if a smaller string exists inside a larger string
C. To reverse the order of characters in a string
D. To count the total number of characters in a string
Solution
Step 1: Understand substring search goal
Substring search algorithms check if a smaller string (pattern) appears inside a bigger string (text).
Step 2: Compare with other options
Sorting, reversing, and counting characters are different string operations unrelated to substring search.
Final Answer:
To find if a smaller string exists inside a larger string -> Option B
Hint: Substring search means finding a smaller string inside a bigger one [OK]
Common Mistakes:
Confusing substring search with sorting or reversing strings
Thinking substring search counts characters
Assuming substring search changes the string
2. Which of the following is the correct way to check if string text contains substring pattern in C#?
easy
A. bool found = Contains(text, pattern);
B. bool found = text.Find(pattern);
C. bool found = text.Contains(pattern);
D. bool found = text.Index(pattern);
Solution
Step 1: Recall C# string method for substring check
The correct method to check if a string contains another is Contains, called on the string instance.
Step 2: Validate method usage
text.Contains(pattern) returns a boolean indicating if pattern is inside text. Other options are invalid or do not exist.
Final Answer:
bool found = text.Contains(pattern); -> Option C
Quick Check:
Use Contains method on string to check substring [OK]
Hint: Use text.Contains(pattern) to check substring presence [OK]
Common Mistakes:
Using non-existent methods like Find or Index
Calling Contains as a standalone function
Confusing method names or parameters
3. What will be the output of the following C# code?
string text = "hello world";
string pattern = "wor";
bool result = text.Contains(pattern);
Console.WriteLine(result);
medium
A. True
B. Runtime exception
C. Compilation error
D. False
Solution
Step 1: Check if pattern "wor" is in text "hello world"
The substring "wor" appears starting at index 6 in "hello world".
Step 2: Evaluate Contains method result
Since the substring exists, text.Contains(pattern) returns true, so result is true.
Final Answer:
True -> Option A
Quick Check:
Substring "wor" in "hello world" = true [OK]
Hint: Check if substring is inside text literally to get true/false [OK]
Common Mistakes:
Assuming Contains returns index instead of bool
Thinking substring is not present due to partial match
Confusing output with string printing
4. Identify the error in the following C# code snippet for substring search:
string text = "data structures";
string pattern = "struct";
int index = text.IndexOf(pattern);
if (index)
{
Console.WriteLine("Found at " + index);
}
medium
A. The if condition should check if index >= 0
B. IndexOf method does not exist for strings
C. Pattern variable is not declared
D. Console.WriteLine syntax is incorrect
Solution
Step 1: Understand IndexOf return value
IndexOf returns the starting index of the substring or -1 if not found.
Step 2: Check if condition usage
The if condition if (index) is invalid because index is an int, not a boolean. It should check index >= 0 to confirm substring found.
Final Answer:
The if condition should check if index >= 0 -> Option A
Quick Check:
Check index >= 0 to confirm substring found [OK]
Hint: Check if index >= 0 to confirm substring found [OK]
Common Mistakes:
Using int directly as boolean in if condition
Assuming IndexOf returns boolean
Ignoring negative index meaning not found
5. Given a list of strings words and a pattern string p, which approach best finds all words containing p as a substring efficiently in C#?
hard
A. Use words.IndexOf(p) directly
B. Sort the list and use binary search for the pattern
C. Replace all occurrences of p in each word with empty string
D. Use a loop to check each word with word.Contains(p) and collect matches
Solution
Step 1: Understand substring search in multiple strings
To find all words containing p, we must check each word individually for the substring.
Step 2: Evaluate options for efficiency and correctness
Using a loop with word.Contains(p) is straightforward and efficient. Sorting and binary search do not help substring search. words.IndexOf(p) is invalid because words is a list of strings, not a string. Replacing substrings does not find matches.
Final Answer:
Use a loop to check each word with word.Contains(p) and collect matches -> Option D
Quick Check:
Loop + Contains per word finds all substring matches [OK]
Hint: Loop through words and use Contains to find substring matches [OK]
Common Mistakes:
Trying binary search for substring matching
Using IndexOf on list instead of strings
Replacing substrings instead of checking presence
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.