C++Builderには、引用符付き文字列から引用符を削除する「AnsiDequotedStr」という便利な関数が用意されています。
AnsiDequotedStr("\"abc\"", '"'); //=> abc
AnsiDequotedStr("\"あいう\"", '"'); //=> あいう
ところが、引用符が連続するとき、空の文字列を返してしまうようです。
AnsiDequotedStr("\"\"abc\"\"", '"'); //=>
AnsiDequotedStr("\"\"あいう\"\"", '"'); //=>
C++Builder 2007とC++Builder 2009で現象を確認しました。
そもそも文字列の途中に引用符があると、以下のような結果になりませんか?
AnsiDequotedStr(“\”ab\”cd\””, ‘”‘); //=> ab
本当ですね。
この関数は、文字列の最初の引用符から次の引用符の間の文字列を返す、ということでしょうか。
ヘルプの説明
> AnsiDequotedStr 関数は,引用符付き文字列の最初と最後から引用符を削除し,文字列内の引用符の組を単引用符に削減します。
> S パラメータの最初と最後に引用符がない場合,AnsiDequotedStr は S をそのまま返します。
は正しくないように感じます。
> は正しくないように感じます。
出来ましたらQCへの登録をお願いいたします。
QCは英語ですよね。苦手なんです。
もし可能なら高橋様にQCの登録をお願いできないでしょうか。