ViVi Home > 技術文書 > ポインタ入門 > 基礎演習問題> strins


 

 

C/C++ ポインタ入門 > 文字列関数 > strins
Nobuhide Tsuda
Nov-2013

文字列を指定位置に挿入:void my_strins(char *dst, int ix, const char *src)

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 文字列を順にコピーする
    }
}

解説:

 


前: | 次: