#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[]){
int n;
for(n=0;s[n]!='\0';n++);
return n;
}
char *setPalindrome(char s[]){
int N=myStrlen(s);
char *t
=(char *)malloc(2 * N
* sizeof(char)+1); for(int m=0;m<N;m++) {
t[m]=s[N-m-1];
}
for(int m=0;m<N;m++) {
t[m+N]=s[m];
}
t[2 * N]='\0';
return t;
}
int main(){
int i;
char nyuryoku[1024]; //入力
char *kaibun; //回文を受け取る
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSl7CiAgICBpbnQgbjsKICAgIGZvcihuPTA7c1tuXSE9J1wwJztuKyspOwogICAgcmV0dXJuIG47Cn0KCmNoYXIgKnNldFBhbGluZHJvbWUoY2hhciBzW10pewogICAgaW50IE49bXlTdHJsZW4ocyk7CiAgICBjaGFyICp0PShjaGFyICopbWFsbG9jKDIgKiBOICogc2l6ZW9mKGNoYXIpKzEpOwogICAgZm9yKGludCBtPTA7bTxOO20rKykgewogICAgICAgIHRbbV09c1tOLW0tMV07CiAgICB9CiAgICBmb3IoaW50IG09MDttPE47bSsrKSB7CiAgICAgICAgdFttK05dPXNbbV07CiAgICB9CgogICAgdFsyICogTl09J1wwJzsKCiAgICByZXR1cm4gdDsKfQoKaW50IG1haW4oKXsKICAgIGludCBpOwogICAgY2hhciBueXVyeW9rdVsxMDI0XTsgLy/lhaXlipsKICAgIGNoYXIgKmthaWJ1bjsgICAvL+WbnuaWh+OCkuWPl+OBkeWPluOCiwogICAgc2NhbmYoIiVzIixueXVyeW9rdSk7CiAgICBrYWlidW4gPSBzZXRQYWxpbmRyb21lKG55dXJ5b2t1KTsKICAgIHByaW50ZigiJXNcbiAgLT4gJXNcbiIsbnl1cnlva3Usa2FpYnVuKTsKICAgIGZyZWUoa2FpYnVuKTsKICAgIHJldHVybiAwOwp9Cg==