Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  1.c
Language: C/C++
Code:
#include <stdio.h>
#include <ctype.h>
#define LIMIT 100
#define WORDLENGTH 20
#define TRUE 1
#define FALSE 0
#define BOOLEAN int

int getWord(char text[], int kount, char theWord[], int pos);
// text[] contains the text in English
// kount is the number of characters in the text
// pos is the position from which a word has to be extracted from text[]
// The extracted word is placed in theWord[]
// The function returns the number of characters in the extracted word

BOOLEAN isPalindrome(char word[], int lengthOfWord);
// word[] contains the word extracted
// lengthOfWord is the number of characters in the word[]
// Returns TRUE if the word is a palindrome or FLASE if not

int main()
{
     char text[LIMIT], ch, theWord[WORDLENGTH];

     int k, kount, wL, nWords = 0, pos;

     BOOLEAN endOfText;
               
     // Input the text
     printf("Input text terminating with $:n");

     kount = 0;

     ch = getchar();

     while (ch != '$')
     {
          text[kount] = ch;

          kount++;

          ch = getchar();
     }
     
     
     // The main part of the task
          
     printf(" n Palindromic words found in the text: n ");

     if (kount > 0)
     {
          
          pos = 0;

          endOfText = FALSE;

          while (!endOfText)
          {
          // Skip all starting spaces and special characters
               while (!isalpha(text[pos]) && pos < kount)
                    pos++;     
                    
               wL = getWord(text, kount, theWord, pos);

               if (wL >= 2 && isPalindrome(theWord, wL))
               {
                    // Display the palindromic word
                    for (k = 0; k < wL; k++)
                    {
                         printf("%1c", theWord[k]);
                    }

                    printf("t");

                    nWords++;
               }
                                   
               pos = pos + wL + 1; 

               if (pos >= kount)

                    endOfText = TRUE;
          }

          printf("nNumber of Palindromic words are: %dn", nWords);
     }

     return TRUE;

}
int getWord(char text[], int kount, char theWord[], int pos)
{
int j=0,i=pos; 
while((i<kount)&&(isalpha(text[i])))
{
theWord[j]=text[i];
  j++;
  i++;
}
  return (j+1);
}
BOOLEAN isPalindrome(char word[], int lengthOfWord)
{
int i=lengthOfWord-1;
int j=0,count=0;
  while(j<lengthOfWord&&j<i)
  {
    if((word[j])!=(word[i]))
    {
     count++; 
    }
  }
  if(count==0)
    return(1);
  else
    return(0);
}
          
          
Comments: