/* File: pali3.c Checks if a string is a palindrome. */ #include #include"genlib.h" #include"simpio.h" #include"strlib.h" /* Function Prototypes */ bool IsPalindrome(string str) ; string ReverseString(string str) ; main() { string str ; printf("This program checks for palindromes.\n") ; printf("End the program by entering a blank line.\n") ; while (TRUE) { printf("String: ") ; str = GetLine() ; if ( StringEqual(str, "") ) break ; if ( IsPalindrome(str) ) { printf("'%s' is a palindrome.\n", str) ; } else { printf("'%s' is not a palindrome.\n", str) ; } } /* end while */ } /* Function: IsPalindrome */ bool IsPalindrome(string str) { return( StringEqual(str, ReverseString(str)) ) ; } /* Function: ReverseString */ string ReverseString(string str) { int i, n ; char c ; string rev ; rev = "" ; n = StringLength(str) ; for (i = 0 ; i < n ; i++) { c = IthChar(str, i) ; rev = Concat(CharToString(c), rev) ; } return(rev) ; }