fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int isPalindrome(char s[]){
  5. int i,j;
  6. for(i=0;s[i]!='\0';i++);
  7. for(j=0;j<i;j++){
  8. i--;
  9. if(s[i]!=s[j]) return 0;
  10. }
  11. return 1;
  12. }
  13.  
  14. char *setPalindrome(char s[]){
  15. char *tmp;
  16. int i;
  17. for(i=0;s[i]!='\0';i++);
  18. int j,k;
  19. tmp = (char*)malloc(sizeof(char)*i*2);
  20. if(tmp==NULL){
  21. printf("ERROR\n");
  22. return 0;
  23. }
  24. for(j=0;j<i;j++){
  25. tmp[j] = s[j];
  26. }
  27. for(j=i;isPalindrome(tmp)==0;j++){
  28. //printf("j=%d\n",j);
  29. for(k=0;k<j-i;k++){
  30. tmp[j-k-1]=tmp[k];
  31. }
  32. tmp[j]='\0';
  33. //printf("%s\n",tmp);
  34. }
  35. return tmp;
  36. }
  37.  
  38. int main(){
  39. int i;
  40. char nyuryoku[1024];
  41. char *kaibun;
  42. scanf("%s",nyuryoku);
  43. kaibun = setPalindrome(nyuryoku);
  44. printf("%s\n -> %s\n",nyuryoku,kaibun);
  45. free(kaibun);
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 5284KB
stdin
abcd
stdout
abcd
  -> abcdcba