void my_strins(char *dst, int ix, const char *src)
{
int dlen = strlen(dst); // dst 文字例長
if( ix < 0 ) { // ix がマイナスの場合
ix = 0;
} else if( ix > dlen ) { // ix が dst 文字数を超えていた場合
ix = dlen;
}
int slen = strlen(src); // src 文字例長
for(int i = dlen + 1; --i >= 0;) {
dst[ix + i + slen] = dst[ix + i]; // dst を src の文字数分だけ後ろにずらす
}
for(int i = 0; i < slen; ++i) {
dst[ix + i] = src[i]; // 空けた領域に src 文字列を順にコピーする
}
}
解説:
前: | 次: