2017-10-04 16 views
-6

数字の文字列を持っています たとえば、156983425 '34'を持っているかどうか検索したい場合は '34' '34'かどうか?あなたの助けここ文字列中のサブ文字列を検索し、その前に別の文字列を確認する

+5

SOはコード作成サービスではないため、この質問を議論の対象外としています。あなたの努力を示してください。 – EdChum

+0

あなたは 'std :: string :: find'と' if'を使いたいと思うように聞こえます。ハッピーコーディング! – user4581301

答えて

0

屋に行くための

おかげで、std::string::findを使用します。それが見つからない場合

// Notice the double quotes 
std::string::size_type position = my_string.find("34"); 
bool found = 
((position != std::string::npos) && (position > 0) && (my_string[position - 1] == '6')); 

find方法は、サブストリングの位置、またはstd::string::nposを返します。

「前」要件のため、位置は0より大きくなければなりません。

両方の条件が満たされている場合、「34」より前の文字スロットは「6」がチェックされ、ブール変数に割り当てられます。

+0

'' 34''が位置 '0'にある場合はどうなりますか? – user0042

+0

'found'変数は' false'に設定され、要件が満たされていないことを示します。 '&&'演算子は短絡しているので、評価が偽と評価されると評価は停止します。したがって、最後の項は 'position'がゼロで評価されません。 –

+0

ああ、申し訳ありません。私は '(position> 0)'の条件を見落としてきました。 – user0042

関連する問題