文字列の削除について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みゅーる

文字列の削除について

#1

投稿記事 by みゅーる » 16年前

宜しくお願いします。

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

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

 int a;

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

 
}

御津凪

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

#2

投稿記事 by 御津凪 » 16年前

単に文字数分を削除するなら、
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:文字列の削除について

#3

投稿記事 by みゅーる » 16年前

御津凪さん、お返事ありがとうございます。

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る