fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int myStrlen(char s[]) {
  6. int i;
  7. for(i = 0; s[i] != '\0'; i++);
  8. return i;
  9. }
  10.  
  11. // 関数の中でtmpに対してmallocして
  12. // そこに回文を代入してreturnで返しましょう
  13. char *setPalindrome(char s[]) {
  14. char *tmp;
  15. //以下に必要な宣言を含めて書いてください
  16. int len = myStrlen(s);
  17.  
  18. tmp = (char *)malloc((2 * len) * sizeof(char));
  19. if (tmp == NULL) {
  20. fprintf(stderr, "Memory allocation failed\n");
  21. exit(1);
  22. }
  23.  
  24. strcpy(tmp, s);
  25.  
  26. for (int i = 0; i < len - 1; i++) {
  27. tmp[len + i] = s[len - i - 2];
  28. }
  29. tmp[2 * len - 1] = '\0';
  30.  
  31. return tmp;
  32. }
  33.  
  34. //メイン関数はいじる必要はありません
  35. int main() {
  36. char nyuryoku[1024];
  37. char *kaibun;
  38.  
  39. if (scanf("%s", nyuryoku) != 1) {
  40. fprintf(stderr, "Input error\n");
  41. return 1;
  42. }
  43.  
  44. kaibun = setPalindrome(nyuryoku);
  45. printf("%s\n -> %s\n", nyuryoku, kaibun);
  46. free(kaibun);
  47.  
  48. return 0;
  49. }
  50.  
  51.  
Success #stdin #stdout 0.01s 5284KB
stdin
たけやぶやけた
stdout
たけやぶやけた
  -> たけやぶやけた�㑁㄂㶁㄂㑁㟁�