fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int myStrlen(char s[])
  5. {
  6. int i;
  7. for (i = 0; s[i] != '\0'; i++)
  8. ;
  9. return i;
  10. }
  11.  
  12. int check(char s[])
  13. {
  14. int n = myStrlen(s);
  15. int i = 0;
  16. while (s[i] == s[n - i - 1])
  17. {
  18. if (i >= n / 2)
  19. return 1;
  20. i++;
  21. }
  22. return 0;
  23. }
  24.  
  25. char *setPalindrome(char s[])
  26. {
  27. char *tmp;
  28. int n = myStrlen(s), i;
  29. tmp = (char *)malloc(sizeof(char) * (n * 2 + 1));
  30.  
  31. for (i = 0; i < n; i++)
  32. {
  33. tmp[i] = s[i];
  34. }
  35. tmp[n] = '\0';
  36.  
  37. if (check(tmp) == 1)
  38. return tmp;
  39.  
  40. for (i = 1; i < n; i++)
  41. {
  42. for (int k = 0; k < i; k++)
  43. {
  44. tmp[k + n] = s[i - k - 1];
  45. }
  46. tmp[i + n] = '\0';
  47. if (check(tmp) == 1)
  48. {
  49. return tmp;
  50. }
  51. }
  52.  
  53. return tmp;
  54. }
  55.  
  56. int main()
  57. {
  58. int i;
  59. char nyuryoku[1024];
  60. char *kaibun;
  61. scanf("%s", nyuryoku);
  62. kaibun = setPalindrome(nyuryoku);
  63. printf("%s\n -> %s\n", nyuryoku, kaibun);
  64. free(kaibun);
  65. return 0;
  66. }
Success #stdin #stdout 0s 5288KB
stdin
kogakuin
stdout
kogakuin
  -> kogakuiniukagok