C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で特定の文字列の単語を数える


スペース、改行文字、タブ文字を間に入れることができる単語を含む文または文字列が与えられます。タスクは、文字列内の単語の総数を計算し、結果を出力することです。

入力 − string str =“ようこそ\nチュートリアルポイント\t”

出力 −文字列内の単語数は− 4

説明 −文字列には4つの単語があります。つまり、ようこそ、to、チュートリアル、ポイント、残りはスペース(“”)、次の行の文字(\ n)、タブ文字(\ t)が単語の間にあります。

入力 − string str =“ \ nhonesty \tが最良のポリシーです”

出力 −文字列内の単語数は− 5

説明 −文字列には4つの単語があります。つまり、正直、つまり、最高のポリシーであり、残りはスペース(“”)、次の行の文字(\ n)、および単語の間にあるタブ文字(\ t)です。

>

以下のプログラムで使用されているアプローチは次のとおりです

これには複数の解決策があります。それでは、最初に、以下のコードで使用したより単純なアプローチを見てみましょう-

  • 文字列を格納するためのchar型の配列を作成します。たとえば、str []

  • 2つの一時変数を宣言します。1つは文字列内の単語数をカウントするためのカウントであり、フラグ操作を実行するための一時変数です。

  • strがnullでないときにループを開始する

  • ループ内で、IF * str =space OR * str =next line OR * str =tabをチェックしてから、tempを0に設定します

  • それ以外の場合temp=0の場合、tempを1に設定し、countの値を1ずつ増やします

  • strポインタを1インクリメントします

  • countで値を返します

  • 結果を印刷する

#include
using namespace std;
//count words in a given string
int total_words(char *str){
   int count = 0;
   int temp = 0;
   while (*str){
      if (*str == ' ' || *str == '\n' || *str == '\t'){
         temp = 0;
      }
      else if(temp == 0){
         temp = 1;
         count++;
      }
      ++str;
   }
   return count;
}
int main(){
   char str[] = "welcome to\n tutorials point\t";
   cout<<"Count of words in a string are: "<<total_words(str);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of words in a string are: 4

  1. C#で指定された文字列の単語を逆にする

    次は文字列だとしましょう- Welcome 文字列を逆にすると、単語は-のように表示されます。 emocleW reverse()メソッドを使用し、次のコードを試して、文字列内の単語を逆にします- 例 using System; using System.Linq; class Demo {    static void Main() {       string str = "Welcome";       // reverse the string     &n

  2. 与えられた文字列の単語を数えるPythonプログラム?

    「文字列」と「単語」があり、Pythonを使用して文字列内でこの単語の出現回数を見つける必要があるとします。これは、このセクションで行うことです。特定の文字列内の単語の数を数え、それを出力します。 特定の文字列の単語数を数える 方法1:forループを使用する #方法1:forループの使用 test_stirng = input("String to search is : ") total = 1 for i in range(len(test_stirng)):    if(test_stirng[i] == ' ' or te