Advertisement
bigyan

Smallest Palindrome from a String, attempt2

Apr 20th, 2011
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.57 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int isPalin ( char *str ) {
  6.     int i, len=strlen(str);
  7.     for (i=0; i<len/2; ++i)
  8.         if (str[i]!=str[len-i-1])
  9.             break;
  10.     return i==len/2;
  11. }
  12.  
  13. int main(int argc, char *argv[]) {
  14.     if (argc!=2)
  15.         puts("Usage: small_palin <string>");
  16.     else {
  17.         char *str = argv[1];
  18.         int i=0, j, len=strlen(str);
  19.         while ( !isPalin(str+i) )
  20.             ++i;
  21.         char *palin = malloc(len+1+i);
  22.         *(palin+len+1+i) = '\0';
  23.         strcpy(palin,str);
  24.         for (i=i-1, j=0; i>=0; --i, ++j)
  25.             *(palin+len+j) = str[i];
  26.         puts(palin);
  27.     }
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement