#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[]){//文字列の長さを返す関数
int i,count=0;
for(i=0;s[i]!='\0';i++){
count++;
};
return count;
}
// 関数の中でtmpに対してmallocして
// そこに回文を代入してreturnで返しましょう
char *setPalindrome(char s[]){
char *tmp;
//以下に必要な宣言を含めて書いてください
int howlong = myStrlen(s);//元の文字数
int alllong = howlong*2;//元の文字列の2倍
tmp
=(char *)malloc(sizeof(char)*(howlong
+1));//終端文字があるため+1 //エラー処理
if(tmp == NULL){
return 0;
}
// 元の文字列をコピー
for (int i = 0; i < howlong; i++) {
tmp[i] = s[i];
}
// 逆順にコピーして回文を作る
for (int i = 0; i < howlong; i++) {
tmp[howlong + i] = s[howlong - 1 - i];
}
tmp[alllong] = '\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+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSl7Ly/mloflrZfliJfjga7plbfjgZXjgpLov5TjgZnplqLmlbAKICAgIGludCBpLGNvdW50PTA7CiAgICBmb3IoaT0wO3NbaV0hPSdcMCc7aSsrKXsKICAgICAgICBjb3VudCsrOwogICAgfTsKICAgIHJldHVybiBjb3VudDsKfQoKLy8g6Zai5pWw44Gu5Lit44GndG1w44Gr5a++44GX44GmbWFsbG9j44GX44GmCi8vIOOBneOBk+OBq+WbnuaWh+OCkuS7o+WFpeOBl+OBpnJldHVybuOBp+i/lOOBl+OBvuOBl+OCh+OBhgpjaGFyICpzZXRQYWxpbmRyb21lKGNoYXIgc1tdKXsKCWNoYXIgKnRtcDsKCS8v5Lul5LiL44Gr5b+F6KaB44Gq5a6j6KiA44KS5ZCr44KB44Gm5pu444GE44Gm44GP44Gg44GV44GECglpbnQgaG93bG9uZyA9IG15U3RybGVuKHMpOy8v5YWD44Gu5paH5a2X5pWwCglpbnQgYWxsbG9uZyA9IGhvd2xvbmcqMjsvL+WFg+OBruaWh+Wtl+WIl+OBrjLlgI0KCQoJdG1wPShjaGFyICopbWFsbG9jKHNpemVvZihjaGFyKSooaG93bG9uZysxKSk7Ly/ntYLnq6/mloflrZfjgYzjgYLjgovjgZ/jgoErMQoJLy/jgqjjg6njg7zlh6bnkIYKCWlmKHRtcCA9PSBOVUxMKXsKCSAgICBwcmludGYoIkVSUk9SXG4iKTsKCSAgICByZXR1cm4gMDsKCX0KCQoJLy8g5YWD44Gu5paH5a2X5YiX44KS44Kz44OU44O8CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGhvd2xvbmc7IGkrKykgewogICAgICAgIHRtcFtpXSA9IHNbaV07CiAgICB9CgogICAgLy8g6YCG6aCG44Gr44Kz44OU44O844GX44Gm5Zue5paH44KS5L2c44KLCiAgICBmb3IgKGludCBpID0gMDsgaSA8IGhvd2xvbmc7IGkrKykgewogICAgICAgIHRtcFtob3dsb25nICsgaV0gPSBzW2hvd2xvbmcgLSAxIC0gaV07CiAgICB9CgogICAgdG1wW2FsbGxvbmddID0gJ1wwJzsgLy8g57WC56uv5paH5a2XCgogICAgcmV0dXJuIHRtcDsKICAgIAp9CgoKLy/jg6HjgqTjg7PplqLmlbDjga/jgYTjgZjjgovlv4XopoHjga/jgYLjgorjgb7jgZvjgpMKaW50IG1haW4oKXsKICAgIGludCBpOwogICAgY2hhciBueXVyeW9rdVsxMDI0XTsgLy/lhaXlipsKICAgIGNoYXIgKmthaWJ1bjsgICAvL+WbnuaWh+OCkuWPl+OBkeWPluOCiwogICAgc2NhbmYoIiVzIixueXVyeW9rdSk7CiAgICBrYWlidW4gPSBzZXRQYWxpbmRyb21lKG55dXJ5b2t1KTsKICAgIHByaW50ZigiJXNcbiAgLT4gJXNcbiIsbnl1cnlva3Usa2FpYnVuKTsKICAgIGZyZWUoa2FpYnVuKTsKICAgIHJldHVybiAwOwp9Cg==