#include <stdio.h>
#include <stdlib.h>
//文字列の長さを求める関数
int myStrlen(char s[]){
int i;
for(i = 0; s[i] != '\0'; i++);
return i;
}
//文字列を2回繰り返した文字列を作る関数
char *setDouble(char s[]){
int i, size;
char *tmp;
//文字列の長さを求める
size = myStrlen(s);
//2倍の文字数+終端文字1文字分のメモリを確保
tmp
= (char *)malloc(sizeof(char) * (2 * size
+ 1));
//メモリ確保に失敗した場合
if(tmp == NULL){
return NULL;
}
//前半に元の文字列をコピー
for(i = 0; i < size; i++){
tmp[i] = s[i];
}
//後半にも元の文字列をコピー
for(i = 0; i < size; i++){
tmp[i + size] = s[i];
}
//文字列の終わり
tmp[2 * size] = '\0';
return tmp;
}
int main(){
char s[100];
char *p;
//文字列を入力
//2回繰り返した文字列を作る
p = setDouble(s);
//表示
//mallocで確保したメモリを解放
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8v5paH5a2X5YiX44Gu6ZW344GV44KS5rGC44KB44KL6Zai5pWwCmludCBteVN0cmxlbihjaGFyIHNbXSl7CiAgICBpbnQgaTsKICAgIGZvcihpID0gMDsgc1tpXSAhPSAnXDAnOyBpKyspOwogICAgcmV0dXJuIGk7Cn0KCi8v5paH5a2X5YiX44KSMuWbnue5sOOCiui/lOOBl+OBn+aWh+Wtl+WIl+OCkuS9nOOCi+mWouaVsApjaGFyICpzZXREb3VibGUoY2hhciBzW10pewogICAgaW50IGksIHNpemU7CiAgICBjaGFyICp0bXA7CgogICAgLy/mloflrZfliJfjga7plbfjgZXjgpLmsYLjgoHjgosKICAgIHNpemUgPSBteVN0cmxlbihzKTsKCiAgICAvLzLlgI3jga7mloflrZfmlbDvvIvntYLnq6/mloflrZcx5paH5a2X5YiG44Gu44Oh44Oi44Oq44KS56K65L+dCiAgICB0bXAgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAoMiAqIHNpemUgKyAxKSk7CgogICAgLy/jg6Hjg6Ljg6rnorrkv53jgavlpLHmlZfjgZfjgZ/loLTlkIgKICAgIGlmKHRtcCA9PSBOVUxMKXsKICAgICAgICBwcmludGYoIkVSUk9SXG4iKTsKICAgICAgICByZXR1cm4gTlVMTDsKICAgIH0KCiAgICAvL+WJjeWNiuOBq+WFg+OBruaWh+Wtl+WIl+OCkuOCs+ODlOODvAogICAgZm9yKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXsKICAgICAgICB0bXBbaV0gPSBzW2ldOwogICAgfQoKICAgIC8v5b6M5Y2K44Gr44KC5YWD44Gu5paH5a2X5YiX44KS44Kz44OU44O8CiAgICBmb3IoaSA9IDA7IGkgPCBzaXplOyBpKyspewogICAgICAgIHRtcFtpICsgc2l6ZV0gPSBzW2ldOwogICAgfQoKICAgIC8v5paH5a2X5YiX44Gu57WC44KP44KKCiAgICB0bXBbMiAqIHNpemVdID0gJ1wwJzsKCiAgICByZXR1cm4gdG1wOwp9CgppbnQgbWFpbigpewogICAgY2hhciBzWzEwMF07CiAgICBjaGFyICpwOwoKICAgIC8v5paH5a2X5YiX44KS5YWl5YqbCiAgICBzY2FuZigiJXMiLCBzKTsKCiAgICAvLzLlm57nubDjgorov5TjgZfjgZ/mloflrZfliJfjgpLkvZzjgosKICAgIHAgPSBzZXREb3VibGUocyk7CgogICAgLy/ooajnpLoKICAgIHByaW50ZigiJXMgLT4gJXNcbiIsIHMsIHApOwoKICAgIC8vbWFsbG9j44Gn56K65L+d44GX44Gf44Oh44Oi44Oq44KS6Kej5pS+CiAgICBmcmVlKHApOwoKICAgIHJldHVybiAwOwp9Cg==