21xrx.com
2024-12-22 17:00:36 Sunday
登录
文章检索 我的文章 写文章
C++实现字符串单词数量统计
2023-07-05 14:24:09 深夜i     --     --
C++ 字符串 单词数量 统计

C++是一种非常流行的编程语言,可以用来实现各种各样的功能。其中,字符串处理是一个非常基础且常见的功能。在很多情况下,我们需要对字符串进行单词数量统计,这也是一个非常常见的需求。接下来,我们就来看看如何使用C++实现字符串单词数量统计。

首先,我们需要了解什么是单词。在本文中,单词是指由字母或数字组成的一段连续的字符,不包括空格、标点符号等分隔符号。比如,“Hello World”这个字符串中,就包含两个单词,“Hello”和“World”。

要统计字符串中单词的数量,我们首先需要将字符串分割成若干个单词。可以使用空格、标点符号等分隔符来进行分割。具体的实现方式有很多种,比如使用C++语言中的字符串流sstream来实现:


string str = "Hello World";

stringstream ss(str);

string word;

int count = 0;

while(ss >> word) {

  count++;

}

cout << count << endl; // 输出2

上述代码首先定义了一个字符串sstream对象ss,并将字符串“Hello World”传入其中。然后定义了一个变量word,用来保存每个分割出来的单词。在while循环中,每次从sstream对象中读取一个单词,如果成功读取,则将单词数加1。最后输出统计出来的单词数量。

除了stringstream之外,还可以使用C++标准库中的strtok函数来实现字符串分割。不过需要注意的是,strtok函数会修改原始字符串,所以在使用时需要注意保存原始字符串或者做好备份。


char* str = "Hello World";

char* ptr = strtok(str, " \t\n\r.,;?!|");

int count = 0;

while(ptr != NULL) {

  count++;

  ptr = strtok(NULL, " \t\n\r.,;?!|");

}

cout << count << endl; // 输出2

这段代码首先定义了一个字符串指针str和一个指针ptr,将字符串“Hello World”传给str。然后使用strtok函数将字符串分割成若干个单词,并将ptr指向第一个单词。在while循环中,如果ptr不为空,则将单词数量加1,并将ptr指向下一个单词。最后输出统计出来的单词数量。

总的来说,使用C++实现字符串单词数量统计有很多种方式,上述只是其中的两种实现方式。不同的实现方式可能有其优缺点,具体选择哪种方式应根据实际需求和具体情况来进行判断。希望本文能够对读者有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复