CStringクラスのRemoveを使用して、ダブルkォーテーション(")を消去するには?

[戻る]
ともや [E-Mail] 2001/08/24(金) 22:51:24
非常に基本的な質問ですいません。

Stringにダブルクォーテーション入りの
文字列が入ってまして、それを除去したいのですが
なにか方法はありますでしょうか?
removeを使用しょうと思いましたが、
"は特別な文字なものですから当然受け付けてもらえません。
何か書き方があるのでしょうか?

よろしくお願いします。

Bun 2001/08/24(金) 23:43:18
夜Bunです。

> Stringにダブルクォーテーション入りの
> 文字列が入ってまして、それを除去したいのですが
> なにか方法はありますでしょうか?
あると思います。

> removeを使用しょうと思いましたが、
> "は特別な文字なものですから当然受け付けてもらえません。

ともやさんが どうやって、その結果どうなったか教えてもらえませんか?

CStringクラスでは

CString str = "abdef\"fg"; // これで str = "abdef"fg"

str.Remove('"'); // これで str = abdeffg

でいけました。
C++の入門書を読んだら、定数(リテラル)のエスケープ文字の項目に \\ や \" の話題がのっていました。

ともや 2001/09/06(木) 11:15:35
[[解決]]
すいません。質問の仕方が悪かったように思います。
一応下のほうにあります方法で回避しました。
でも、\"のところは勉強になりました。
ありがとうございます。

んで、実際やりたかったことは、
"大分類コード","中分類コード","小分類コード"
のように漢字入りの文字を含むCSVデータを
読み込み時にこのダブルクォーテーション(")を
除去したかったのです。

CString str = "大分類コード";
str.remove('"');
とすると、漢字の部分が化けてしまいます。

ということで、下記のようにMidを使用して
のりきりました。スマートじゃないかもしれませんが。

CString wStr;
CString str = "大分類コード";

wStr = str.Mid(1,str.GetLength() - 2);    //初めと終わりの文字以外をwStrへ

他にやり方があるのかもしれませんが、
とりあえずこのやり方でいきます。
どうもありがとうございました。

古いスレッドには追加発言できません。