#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[]) {
int i;
for (i = 0; s[i] != '\0'; i++);
return i;
}
// 関数の中でtmpに対してmallocして
// そこに回文を代入してreturnで返しましょう
char *setPalindrome(char s[]) {
int len = myStrlen(s);
int i;
// mallocで2倍の長さ + '\0' の分を確保
char *tmp
= (char *)malloc((2 * len
+ 1) * sizeof(char)); if (tmp == NULL) {
// mallocに失敗した場合
return NULL;
}
// 元の文字列をコピー(前半)
for (i = 0; i < len; i++) {
tmp[i] = s[i];
}
// 逆順にしてコピー(後半)
for (i = 0; i < len; i++) {
tmp[len + i] = s[len - 1 - i];
}
// null終端
tmp[2 * len] = '\0';
return tmp;
}
// メイン関数はいじる必要はありません
int main(){
int i;
char nyuryoku[1024]; //入力
char *kaibun; //回文を受け取る
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSkgewogICAgaW50IGk7CiAgICBmb3IgKGkgPSAwOyBzW2ldICE9ICdcMCc7IGkrKyk7CiAgICByZXR1cm4gaTsKfQoKLy8g6Zai5pWw44Gu5Lit44GndG1w44Gr5a++44GX44GmbWFsbG9j44GX44GmCi8vIOOBneOBk+OBq+WbnuaWh+OCkuS7o+WFpeOBl+OBpnJldHVybuOBp+i/lOOBl+OBvuOBl+OCh+OBhgpjaGFyICpzZXRQYWxpbmRyb21lKGNoYXIgc1tdKSB7CiAgICBpbnQgbGVuID0gbXlTdHJsZW4ocyk7CiAgICBpbnQgaTsKCiAgICAvLyBtYWxsb2Pjgacy5YCN44Gu6ZW344GVICsgJ1wwJyDjga7liIbjgpLnorrkv50KICAgIGNoYXIgKnRtcCA9IChjaGFyICopbWFsbG9jKCgyICogbGVuICsgMSkgKiBzaXplb2YoY2hhcikpOwogICAgaWYgKHRtcCA9PSBOVUxMKSB7CiAgICAgICAgLy8gbWFsbG9j44Gr5aSx5pWX44GX44Gf5aC05ZCICiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICB9CgogICAgLy8g5YWD44Gu5paH5a2X5YiX44KS44Kz44OU44O877yI5YmN5Y2K77yJCiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB0bXBbaV0gPSBzW2ldOwogICAgfQoKICAgIC8vIOmAhumghuOBq+OBl+OBpuOCs+ODlOODvO+8iOW+jOWNiu+8iQogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgdG1wW2xlbiArIGldID0gc1tsZW4gLSAxIC0gaV07CiAgICB9CgogICAgLy8gbnVsbOe1guerrwogICAgdG1wWzIgKiBsZW5dID0gJ1wwJzsKCiAgICByZXR1cm4gdG1wOwp9CgovLyDjg6HjgqTjg7PplqLmlbDjga/jgYTjgZjjgovlv4XopoHjga/jgYLjgorjgb7jgZvjgpMKaW50IG1haW4oKXsKICAgIGludCBpOwogICAgY2hhciBueXVyeW9rdVsxMDI0XTsgLy/lhaXlipsKICAgIGNoYXIgKmthaWJ1bjsgICAvL+WbnuaWh+OCkuWPl+OBkeWPluOCiwogICAgc2NhbmYoIiVzIixueXVyeW9rdSk7CiAgICBrYWlidW4gPSBzZXRQYWxpbmRyb21lKG55dXJ5b2t1KTsKICAgIHByaW50ZigiJXNcbiAgLT4gJXNcbiIsbnl1cnlva3Usa2FpYnVuKTsKICAgIGZyZWUoa2FpYnVuKTsKICAgIHJldHVybiAwOwp9Cg==