ページ 11

文字列の削除について

Posted: 2009年1月28日(水) 22:04
by みゅーる
宜しくお願いします。

C言語で質問させてください。
文字列の頭から決まった文字数だけ削除したいのですが、
標準関数?というのでしょうか、便利な関数はないでしょうか?

#include<stdio.h>
#include<string.h>
void main()
{
char moji[/url]="何かしらの文字列";
char moji2[/url]="何かしらの文字列2";

 int a;

a=strlen(moji);  //←mojiの文字数分をmoji2の頭から削除したい・・・

 
}

Re:文字列の削除について

Posted: 2009年1月28日(水) 22:16
by 御津凪
単に文字数分を削除するなら、
const char* ofs_str( const char* str, int len ){
    return str + len;
}
で、擬似的に削除できます。
(この関数の戻り値を使用すれば削除されたように見えます)

もし、バッファ内の文字を本当に削除する(削除した分を詰める)なら、
void str_shift( char* str, int len ){
    char* ofs = str + len;
    memmove( str, ofs, strlen(ofs) + 1 );
}
で、可能なはずです。

Re:文字列の削除について

Posted: 2009年1月28日(水) 22:29
by みゅーる
御津凪さん、お返事ありがとうございます。

memmove()のほうを試してみたいと思います!

ありがとうございました!