2017-11-27 9 views
1

まず最初に、私が明白な間違いを犯していれば、私を許してください。ユーザー入力文字列のカップルアルゴリズム

こんにちは、私はC++コードを書いています。私はユーザーから文章を入手し、いくつかのことをする必要があります。

  1. 文字列には何文字がありますか?
  2. あなたの文字列にはいくつの単語がありますか?

私はこのコードで文字列を取得しています:

string str; 
cout << "Please enter your string."<<endl; 
getline(cin,str); 
cout<< "Your string is : "<<a<<endl; 
cout<<"Length of your string is : "<<str.length(); 

私はstr.lengthで文字列の長さを取得していますが、それは私の質問は、私は「スペース」を決定する方法であり、あまりにもスペースをカウント?

ものの@KABoissonneaultは完全に正しいですが、私はあまりにものstrtokを見て与えることをお勧め:私はコメントを投稿するには評判を十分に持っていけないので

+0

'std :: string :: find'メソッドを使用してみましょう:-) – AndyG

+0

[' std :: count_if'] (http://en.cppreference.com/w/cpp/algorithm/count)文字列から文字を数えます(数字、特殊文字などとは対照的に意味する場合) – CoryKramer

+0

空白以外の文字の数を数えることができます単純な '' std :: count_if(str.begin()、str.end()、[](const char c){return!std :: isspace(c);}); 'と呼びます。このアルゴリズムのバリエーションは、あなたがこの述語に従ってあなたの文字列を見つけて、おそらく "トークン化"させるでしょう。あなたは飛ばしたいラムダに空白以外の文字を追加することもできます – KABoissonneault

答えて

0

、私はここでダウン書いています。 strtokは任意の区切り文字に基づいて文字列をトークン化できます(スペースはあなたの場合です)

関連する問題