📖 Scenario: Imagine you are building a simple program that checks if a word is a palindrome. A palindrome is a word that reads the same forwards and backwards, like "madam" or "racecar".
🎯 Goal: You will create a program that takes a word, checks if it is a palindrome, and prints the result.
📋 What You'll Learn
Create a character array with a specific word
Create an integer variable for the word length
Write a loop to check if the word is a palindrome
Print whether the word is a palindrome or not
💡 Why This Matters
🌍 Real World
Palindrome detection is useful in text processing, data validation, and coding challenges.
💼 Career
Understanding string manipulation and loops is fundamental for programming jobs and technical interviews.
Progress0 / 4 steps
1
Create the word to check
Create a character array called word and initialize it with the string "level".
DSA C
Hint
Use char word[] = "level"; to create the word.
2
Calculate the length of the word
Create an integer variable called length and set it to the length of word using sizeof(word) - 1.
DSA C
Hint
Use int length = sizeof(word) - 1; to get the length without the null character.
3
Check if the word is a palindrome
Create an integer variable is_palindrome and set it to 1. Then write a for loop with int i = 0; i < length / 2; i++ to compare word[i] and word[length - 1 - i]. If they are not equal, set is_palindrome to 0 and break the loop.
DSA C
Hint
Use a loop to compare characters from start and end moving towards the center.
4
Print the result
Use printf to print "Palindrome" if is_palindrome is 1, otherwise print "Not Palindrome".
DSA C
Hint
Use if (is_palindrome) to decide what to print.
Practice
(1/5)
1. What is a palindrome in the context of strings?
easy
A. A string that contains only vowels
B. A string that ends with a special character
C. A string with all unique characters
D. A string that reads the same forwards and backwards
Solution
Step 1: Understand palindrome definition
A palindrome is a word or phrase that reads the same forwards and backwards, ignoring spaces and punctuation.
Step 2: Compare options with definition
Only A string that reads the same forwards and backwards matches this definition exactly.
Final Answer:
A string that reads the same forwards and backwards -> Option D
Quick Check:
Palindrome = same forwards and backwards [OK]
Hint: Check if string equals its reverse [OK]
Common Mistakes:
Confusing palindrome with unique characters
Thinking palindrome means only vowels
Assuming palindrome ends with special characters
2. Which of the following C code snippets correctly checks if a string s is a palindrome?
easy
A. for (int i = 0; i < strlen(s)/2; i++) { if (s[i] != s[strlen(s)-1-i]) return 0; } return 1;
B. for (int i = 0; i < strlen(s); i++) { if (s[i] == s[i+1]) return 1; } return 0;
C. for (int i = 0; i < strlen(s); i++) { if (s[i] != s[i+1]) return 0; } return 1;
D. for (int i = 0; i < strlen(s)/2; i++) { if (s[i] == s[strlen(s)-1-i]) return 0; } return 1;
Solution
Step 1: Analyze palindrome check logic
We compare characters from start and end moving towards center. If any pair differs, string is not palindrome.
Step 2: Match code with logic
for (int i = 0; i < strlen(s)/2; i++) { if (s[i] != s[strlen(s)-1-i]) return 0; } return 1; correctly compares s[i] and s[length-1-i] for half the string length and returns 0 if mismatch found, else 1.
Final Answer:
for (int i = 0; i < strlen(s)/2; i++) { if (s[i] != s[strlen(s)-1-i]) return 0; } return 1; -> Option A
Quick Check:
Compare front and back chars for half length [OK]
Hint: Check characters from ends moving inward [OK]
Common Mistakes:
Comparing adjacent characters instead of opposite ends
Returning 1 too early inside loop
Incorrect loop range causing out-of-bounds
3. What will be the output of the following C code?
char s[] = "radar";
int i, flag = 1;
int n = strlen(s);
for (i = 0; i < n/2; i++) {
if (s[i] != s[n - i - 1]) {
flag = 0;
break;
}
}
printf("%d", flag);
medium
A. 0
B. 1
C. Compilation error
D. Undefined behavior
Solution
Step 1: Understand the code logic
The code checks if string "radar" is palindrome by comparing characters from start and end.
Step 2: Trace the loop comparisons
Characters match at all pairs: r-r, a-a, d-d (middle ignored). So flag remains 1.
Final Answer:
1 -> Option B
Quick Check:
"radar" is palindrome, flag = 1 [OK]
Hint: Check if string equals reverse, print 1 if yes [OK]
Common Mistakes:
Assuming flag is 0 for palindrome
Confusing loop range causing missed checks
Misreading string length calculation
4. Identify the error in this palindrome check code snippet:
int isPalindrome(char *s) {
int n = strlen(s);
for (int i = 0; i <= n/2; i++) {
if (s[i] != s[n - i]) {
return 0;
}
}
return 1;
}
medium
A. Loop condition should be i < n/2, not i <= n/2
B. Function should return void instead of int
C. Index n - i should be n - i - 1 to avoid out-of-bounds
D. No error, code works correctly
Solution
Step 1: Check array indexing in condition
String indices go from 0 to n-1, so s[n - i] accesses out-of-bounds when i=0.
Step 2: Correct index to n - i - 1
Changing to s[n - i - 1] fixes indexing and prevents runtime error.
Final Answer:
Index n - i should be n - i - 1 to avoid out-of-bounds -> Option C
Quick Check:
Array index must be within 0 to n-1 [OK]
Hint: Remember last index is length - 1 [OK]
Common Mistakes:
Using wrong loop boundary causing extra iteration
Ignoring off-by-one in array indexing
Assuming function return type is incorrect
5. Given a string with mixed case and spaces, which approach correctly checks if it is a palindrome ignoring case and spaces?
char s[] = "A man a plan a canal Panama";
hard
A. Remove spaces and convert to lowercase, then check palindrome normally
B. Check palindrome directly without modifications
C. Only convert to lowercase, ignore spaces
D. Only remove spaces, ignore case
Solution
Step 1: Normalize string by removing spaces and converting to lowercase
Spaces and case differences affect palindrome check, so remove spaces and convert all letters to lowercase.
Step 2: Perform palindrome check on normalized string
After normalization, check if string reads same forwards and backwards.
Final Answer:
Remove spaces and convert to lowercase, then check palindrome normally -> Option A
Quick Check:
Normalize string before palindrome check [OK]
Hint: Clean string first: lowercase + no spaces [OK]
Common Mistakes:
Ignoring spaces causing false negatives
Ignoring case differences causing false negatives
Checking palindrome on raw string directly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.