#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[])
{int i;
for(i=0; s[i]!='\0'; i++);
return i;}
// 動的メモリを確保して回文を返す
char *setPalindrome(char s[])
{int len=myStrlen(s);
int i;
char *tmp
=malloc((len
*2+1)*sizeof(char)); for(i=0; i<len;i++){
tmp[i]=s[i];}
for(i=0;i<len;i++)
{tmp[len+i]=s[len-1-i];}
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+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSkKe2ludCBpOwpmb3IoaT0wOyBzW2ldIT0nXDAnOyBpKyspOwpyZXR1cm4gaTt9CgovLyDli5XnmoTjg6Hjg6Ljg6rjgpLnorrkv53jgZfjgablm57mlofjgpLov5TjgZkKY2hhciAqc2V0UGFsaW5kcm9tZShjaGFyIHNbXSkKe2ludCBsZW49bXlTdHJsZW4ocyk7CmludCBpOwoKY2hhciAqdG1wPW1hbGxvYygobGVuKjIrMSkqc2l6ZW9mKGNoYXIpKTsKZm9yKGk9MDsgaTxsZW47aSsrKXsKdG1wW2ldPXNbaV07fQpmb3IoaT0wO2k8bGVuO2krKykKe3RtcFtsZW4raV09c1tsZW4tMS1pXTt9Cgp0bXBbbGVuKjJdID0nXDAnOwpyZXR1cm4gdG1wO30KCmludCBtYWluKCkKe2NoYXIgbnl1cnlva3VbMTAyNF07CmNoYXIgKmthaWJ1bjsKCnNjYW5mKCIlcyIsbnl1cnlva3UpOwprYWlidW49c2V0UGFsaW5kcm9tZShueXVyeW9rdSk7CnByaW50ZigiJXNcbi0+JXNcbiIsbnl1cnlva3Usa2FpYnVuKTsKCmZyZWUoa2FpYnVuKTsKcmV0dXJuIDA7Cn0=