English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

#include
#include
#include

void main()
{
char sentence[500]; /* Stores the sentence to be tested */
char sentence_chars[500]; /* Stores the sentence without punctuation and spaces */
size_t i = 0; /* Index to character position */
size_t j = 0; /* Index to character position */
size_t length = 0; /* Length of a string */

printf("Enter a sentence to be tested:\n");
gets(sentence);

/* Copy only letters as lowercase */
for (i = 0 ; i< strlen(sentence) ; i++)
if(isalpha(sentence[i]))
sentence_chars[j++] = tolower(sentence[i]);
sentence_chars[j] = '\0'; /* Append string terminator */

length = strlen(sentence_chars); /* Get the satring length */

/* Compare matching characters in the string */
/* If any pair are not the same, then it's not a palindrome */
for(i = 0 ; i if(sentence_chars[i] != sentence_chars[length-1-i])
{
printf("\n The sentence you entered is not a palindrome.\n");
exit(0);
}
/* If we arrive here all matching pairs of characters are equal */
printf("\n The sentence you entered is a palindrome.\n");
}

2007-03-04 01:11:00 · 1 answers · asked by Anonymous in Computers & Internet Programming & Design

It is betterto give me the code.

2007-03-04 01:28:44 · update #1

1 answers

Yes.

Take the letters and put them into a queue. (enqueue)
Take the letters and put them into a stack. (push)

Compare the results of queue.dequeue to stack.pop until they are both exhausted.

The queue will have the letters in original order because it is FIFO, the stack will have the letters in reverse order (it is LIFO.) If both are equal then the sentence is a palindrome.

2007-03-04 01:24:03 · answer #1 · answered by Vegan 7 · 0 0

fedest.com, questions and answers