c++で文字列内にある「"(ダブルクォーテーション)」と「'(シングルクォーテーション)」を文字として取り出したいのですが、うまくいきません。解答をよろしくお願いします。
具体的に
c++ の <string.h> で使用可能な .find() 関数を用いて
文字列 ABC"DER
のなかにある「"」を探索したい
「"」、「'」の扱い
Re: 「"」、「'」の扱い
どのようにうまくいかないのか詳しく書いてください。
<string.h>はC++ではなくC言語のヘッダーです。 <string>の間違いでしょうか。
<string.h>はC++ではなくC言語のヘッダーです。 <string>の間違いでしょうか。
Re: 「"」、「'」の扱い
\は重要です~。
char a[]="ABC\"\'DER";
int i=0;
for(;a!='\0';i++)
{
if(a=='\"'||a=='\'')
printf("%c\n",a);
}
char a[]="ABC\"\'DER";
int i=0;
for(;a!='\0';i++)
{
if(a=='\"'||a=='\'')
printf("%c\n",a);
}
最後に編集したユーザー y_wing on 2013年8月09日(金) 15:42 [ 編集 4 回目 ]
Re: 「"」、「'」の扱い
string.hの.find()関数は知りません。また、gcc4.7.2では実装されていないようです。
std::basic_stringクラスのfind関数でしたら、 で探索できるはずです。
このfind関数は第二引数で探索開始位置を指定できるので、
すべてのダブルクォーテーションとシングルクォーテーションを探索したければ、
見つからなくなるまで見つかった次の文字からもう一度探索すればいいです。
std::basic_stringクラスのfind関数でしたら、 で探索できるはずです。
このfind関数は第二引数で探索開始位置を指定できるので、
すべてのダブルクォーテーションとシングルクォーテーションを探索したければ、
見つからなくなるまで見つかった次の文字からもう一度探索すればいいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 「"」、「'」の扱い
「文字として取り出す」の意味がよくわかりませんが、.find()関数を使う縛りが無ければこんな感じでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)