//palindrome.c
//Unofficial Practice Practical Exam
//Created by Michael Simarta
//Your Name Here
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#define FALSE 0
#define TRUE 1
#define START_LETTER 'a'
#define END_LETTER 'z'
void testCase(void);
int palindrome (char *string);
int main (int argc, char *argv[]) {
testCase();
return EXIT_SUCCESS;
}
int palindrome (char *string) {
//YOUR CODE HERE
int isPalindrome = TRUE;
char *reversed = malloc (sizeof (string));
char *striped = malloc (sizeof (string));
int count = 0;
while (count < strlen (string) - 1) {
if (string[count] < END_LETTER &&
string[count] > START_LETTER) {
snprintf (striped, sizeof (striped), "%c", string[count]);
}
count++;
}
count = strlen (string) - 1;
while (count >= 0) {
if (string[count] < END_LETTER &&
string[count] > START_LETTER) {
snprintf (reversed, sizeof (striped), "%c", string[count]);
}
count--;
}
//printf("%s %s\n", striped, reversed);
count = 0;
while (count < strlen (striped)) {
if (striped[count] != reversed[count]) {
isPalindrome = FALSE;
}
count++;
}
free (reversed);
free (striped);
return isPalindrome;
}
void testCase(void) {
assert (palindrome("kayak.") == TRUE);
assert (palindrome("puzzlequest") == FALSE);
assert (palindrome("is addo odd as i?") == TRUE);
assert (palindrome("canoe") == FALSE);
assert (palindrome("eevee") == TRUE);
assert (palindrome("awesome") == FALSE);
//ADD MORE TESTS
assert (palindrome("asdfjkjkjkjfdsa") == TRUE);
assert (palindrome("a;dlskjf;kaljsdk;flj") == FALSE);
assert (palindrome("aaaaaaaaaaaaaa") == TRUE);
assert (palindrome("what is going on here") == FALSE);
assert (palindrome("Ilik2ec1ode4edoc!eki5lI") == TRUE);
assert (palindrome("cool cool") == FALSE);
printf("All tests passed, you are Awesome!\n");
}
Download file:
palindrome.c
(2.0 KB)