用c++,统计一个字符串中的单词数量
时间: 2024-03-01 14:55:25 浏览: 195
可以使用C++的标准库函数和算法来实现这个功能。以下是一个简单的例子:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str = "This is a string.";
int count = 1;
for (int i = 0; i < str.size(); i++)
{
if (isspace(str[i]))
count++;
}
cout << "The number of words in the string is: " << count << endl;
return 0;
}
```
这个程序使用了C++的string类来存储输入的字符串,然后使用isspace()函数(在<ctype.h>中定义)来判断空格字符,从而统计单词数量。最后输出结果。
相关问题
用C++实现 统计单词的数量并输出单词的最后一个字符 。 本题目要求编写程序,统计一行字符中单词的个数,并将每个单词的最后一个字符输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。C++实现
以下是用 C 语言实现统计单词数量并输出单词最后一个字符的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
int count = 0;
int is_word = 0;
char last_char;
printf("Please enter a line of text: ");
while ((c = getchar()) != '\n') {
if (isspace(c)) {
if (is_word) {
printf("%c ", last_char);
count++;
is_word = 0;
}
} else {
is_word = 1;
last_char = c;
}
}
if (is_word) {
printf("%c ", last_char);
count++;
}
printf("\nTotal words: %d", count);
return 0;
}
```
代码中使用了 `getchar()` 函数获取输入的字符,然后使用 `isspace()` 函数判断字符是否为空格。如果当前字符是空格,且前面有一个单词,就输出该单词的最后一个字符,并将单词计数器 `count` 加一。如果当前字符不是空格,则认为这是一个单词的一部分,将 `is_word` 标记为 1,并记录下该单词的最后一个字符。最后,如果最后一个字符不是空格,则输出该单词的最后一个字符,并将计数器加一。输出单词总数时,直接输出 `count` 即可。
统计一行字符串有几个单词 c++
在C++中,统计字符串中有多少个单词通常涉及到处理空格分隔。你可以创建一个函数,遍历字符串并计算非空字符连续序列的数量,每遇到空格就将计数加一。以下是一个简单的示例:
```cpp
#include <string>
#include <cctype> // 包含 isspace 函数
size_t countWords(const std::string& str) {
size_t wordCount = 0;
bool insideWord = false; // 标记当前是否在单词内部
for (char c : str) {
if (!isspace(c)) { // 非空格字符
insideWord = true;
continue;
}
if (insideWord) { // 如果在单词内部,则单词结束,计数加一
wordCount++;
insideWord = false;
}
}
// 检查最后一个单词(如果字符串结尾有空格)
if (insideWord || !str.empty()) {
wordCount++;
}
return wordCount;
}
// 使用示例
int main() {
std::string sentence = "Hello, world! This is a C++ example.";
std::cout << "Number of words: " << countWords(sentence) << std::endl;
return 0;
}
```
阅读全文