#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[])
{
char *tmp;
//以下に必要な宣言を含めて書いてください
int len = myStrlen(s);
if((tmp
= (char *)malloc(sizeof(char) * (len
* 2 + 1))) == NULL
) {
return 0;
}
for(int i=0; i<len; i++)
{
tmp[i] = s[i];
}
int k = len;
for(int j=len-1; j>=0; j--)
{
tmp[k] = s[j];
k++;
}
tmp[len * 2] = '\0';
return tmp;
}
//メイン関数はいじる必要はありません
int main()
{
char nyuryoku[1024]; //入力
char *kaibun; //回文を受け取る
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSkKewogICAgaW50IGk7CiAgICBmb3IoaT0wO3NbaV0hPSdcMCc7aSsrKTsKICAgIHJldHVybiBpOwp9CgovLyDplqLmlbDjga7kuK3jgad0bXDjgavlr77jgZfjgaZtYWxsb2PjgZfjgaYKLy8g44Gd44GT44Gr5Zue5paH44KS5Luj5YWl44GX44GmcmV0dXJu44Gn6L+U44GX44G+44GX44KH44GGCmNoYXIgKnNldFBhbGluZHJvbWUoY2hhciBzW10pCnsKCWNoYXIgKnRtcDsKCS8v5Lul5LiL44Gr5b+F6KaB44Gq5a6j6KiA44KS5ZCr44KB44Gm5pu444GE44Gm44GP44Gg44GV44GECglpbnQgbGVuID0gbXlTdHJsZW4ocyk7CglpZigodG1wID0gKGNoYXIgKiltYWxsb2Moc2l6ZW9mKGNoYXIpICogKGxlbiAqIDIgKyAxKSkpID09IE5VTEwpCgl7CgkgICAgcHJpbnRmKCJFUlJPUlxuIik7CgkgICAgcmV0dXJuIDA7Cgl9CgkKCWZvcihpbnQgaT0wOyBpPGxlbjsgaSsrKQoJewoJICAgIHRtcFtpXSA9IHNbaV07Cgl9CgkKCWludCBrID0gbGVuOwoJZm9yKGludCBqPWxlbi0xOyBqPj0wOyBqLS0pCgl7CgkgICAgdG1wW2tdID0gc1tqXTsKCSAgICBrKys7Cgl9CgkKCXRtcFtsZW4gKiAyXSA9ICdcMCc7CgkKCXJldHVybiB0bXA7Cn0KCgovL+ODoeOCpOODs+mWouaVsOOBr+OBhOOBmOOCi+W/heimgeOBr+OBguOCiuOBvuOBm+OCkwppbnQgbWFpbigpCnsKICAgIGNoYXIgbnl1cnlva3VbMTAyNF07IC8v5YWl5YqbCiAgICBjaGFyICprYWlidW47ICAgLy/lm57mlofjgpLlj5fjgZHlj5bjgosKICAgIHNjYW5mKCIlcyIsbnl1cnlva3UpOwogICAga2FpYnVuID0gc2V0UGFsaW5kcm9tZShueXVyeW9rdSk7CiAgICBwcmludGYoIiVzXG4gIC0+ICVzXG4iLG55dXJ5b2t1LGthaWJ1bik7CiAgICBmcmVlKGthaWJ1bik7CiAgICByZXR1cm4gMDsKfQ==