I have a challenge for you. Is there a problem with this code?
It compiles without warnings, and runs as expected.
I’ll reveal all next week.
Have fun!
g++ -g -Wall palindrome_problem.cpp
#include <iostream> #include <string.h> using namespace std; char* isPalindrome(char* word) { char* ret = 0; ret = (char*)"Yes! This is a palindrome."; char *p = word; int len = strlen(word); char *q = &word[len-1]; for (int i = 0 ; i < len ; ++i, ++p, --q) { if (*p != *q) { ret = (char*)"This is not a palindrome."; } } return ret; } int main() { while (1) { char buffer[16] = {0}; cin >> buffer; char* result = isPalindrome(buffer); cout << result << endl; } return 0; }
I will give it a try; buffer variable is only 16 bytes so it will not be able to recognize bigger palindrome strings than that?
One thing which I can point out is efficiency. Why we need to loop through the whole length of the string, if it is a palindrome?