• ベストアンサー

変数内の指定の文字列を消去するには?

以下のような文字列が変数aの中に入っているとします "ABC CO.,I","4540",""STAR"","2010/03/31" この中から CO.,という文字だけを抜き取り、 変数aにある文字列は "ABC I","4540",""STAR"","2010/03/31" にしたいと思っておりますが、どのように行ったらよいのでしょうか? 初心者の質問で申し訳ありませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

まだ受付中みたいなので、もう一言だけ。 基本的に文字列から文字を抜き取る、切り取る、消すという事は出来ないと思って下さい。 ですのでNo.1,2氏のようにCO.,を上書きするか、または変数bを新たに用意しCO.,以外をコピーするしかありません。

master817199
質問者

お礼

なるほど そういう考え方なのですね! 非常に勉強になります、ありがとうございました。

その他の回答 (3)

回答No.3

No.1氏のやり方だとこんな感じになります。 char* p = strstr(a,"CO.,"); memmove(p,p+4,strlen(p+4)); ところで余談ですが、参考URLは私がCをやる時によく活用してるページです。 もしご存知でないようでしたら、ブックマークする事をお勧めします。

参考URL:
http://www9.plala.or.jp/sgwr-t/lib/libtop.html
master817199
質問者

お礼

丁寧に解説してくださいましてありがとうございます。 凄く参考になりました!! また、お勧めのページまで教えて下さいまして 本当に感謝しております。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

strstrで"CO.,"の位置を見つけて、memmoveで詰めてください。

master817199
質問者

お礼

わかりやすい回答に感謝します!

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

CStringなど高度なクラスライブラリの変数なら、置換メソッドが使えるのでそれを使う。 <string.h>とかしか使えないのだったら、strstrで見つけて、COをつぶすようにmemmove()するとかいろいろ。

master817199
質問者

お礼

CStringというものが何なのかわからなかったので 早速検索してみました。 勉強になりました、ありがとうございます。