C++中统计给定字符串中的单词数


给定一个包含单词的句子或字符串,单词之间可能包含空格、换行符和制表符。任务是计算字符串中单词的总数并打印结果。

输入 − 字符串 str = “welcome to\n tutorials point\t”

输出 − 字符串中单词的数量为 − 4

说明 − 字符串中有四个单词,即 welcome、to、tutorials、point,其余是单词之间的空格(“ ”)、换行符(\n)和制表符(\t)。

输入 − 字符串 str = “\nhonesty\t is the best policy”

输出 − 字符串中单词的数量为 − 5

说明 − 字符串中有五个单词,即 honesty、is、the、best、policy,其余是单词之间的空格(“ ”)、换行符(\n)和制表符(\t)。

下面程序中使用的方法如下

这个问题有多种解法。所以让我们首先看看我们在下面的代码中使用的更简单的方案:

  • 创建一个字符类型的数组来存储字符串,例如,str[]

  • 声明两个临时变量,一个count用于计数字符串中单词的数量,另一个temp用于执行标志操作。

  • 开始循环,当str不为空时

  • 在循环内,检查IF *str = 空格 OR *str = 换行符 OR *str = 制表符,则将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

更新于:2020年8月31日

4K+ 次查看

开启您的职业生涯

完成课程获得认证

开始学习
广告