2017-02-19 24 views
-4

C++の部分文字列内で空白や空白を見つける方法を知りたい。たとえば、C++は部分文字列の空白を見つける

string str = "()"; // or str = "()" 

ここでは、常に括弧の間に何かがあることを確認したいと思います。関数isspace()は1文字しか取らないので、ループで検索する必要があります。これを行うための良い方法はありますか?ご協力いただきありがとうございます。

+1

[正規表現](http://en.cppreference.com/w/cpp/regex)多分? –

+0

関数を再帰的に書くことができます。しかし、ループを避けるためには何の意味もありません。ループはこの状況のた​​めに、空白を数えて(そして ''がない場合はどうなるか)、別の ''を打つ( ''から ''に)移動します。 –

+0

@Someprogrammerdude:返信いただきありがとうございます。正規表現。空白または空白部分文字列をチェックするものがあるかどうかだけを知りたいのですが、あなたが正しいと思うのですが、あなたの助けを借りてください。 – mehtame026

答えて

0

あなたはそれらのインデックス間の任意の非空白文字をチェックするためにstd::string::first_first_not_of()を使用し、その後、()文字を見つけるためにstd::string::find()を使用することができます。

string str = "()"; // or str = "()" 
string::size_type idx1 = str.find("("); 
if (idx1 != string::npos) { 
    ++idx1; 
    string::size_type idx2 = str.find(")", idx1); 
    if (idx2 != string::npos) { 
     string tmp = str.substr(idx, idx2-idx1); 
     string::size_type idx3 = tmp.find_first_not_of(" \t\r\n"); 
     if (idx3 != string::npos) { 
      ... 
     } 
    } 
} 
+0

Thanks Remy。 – mehtame026