c++输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
时间: 2023-12-26 12:28:48 浏览: 241
以下是两种C++统计单词个数的例子:
1. 使用while循环和getchar()函数
```cpp
#include <stdio.h>
int main() {
char ch;
int num = 0;
printf("请输入一行字符,单词之间用一个空格分隔开\n");
while ((ch = getchar()) != '\n') {
if (ch == ' ') {
num++;
}
}
printf("该行字符有%d个单词", ++num);
return 0;
}
```
2. 使用for循环和gets()函数
```cpp
#include <stdio.h>
void main() {
char a[80];
int i, num = 0, word = 0;
printf("input:");
gets(a);
for (i = 0; a[i] != '\0'; i++) {
if (a[i] == ' ') {
word = 0;
} else if (word == 0) {
num++;
word = 1;
}
}
printf("num=%d\n", num);
}
```
相关问题
c++输入一行字符,计算该行字符中包含多少个单词,单词之间用空格分隔开。
在 C++ 中,你可以通过标准库中的 `cin` 和 `getline` 函数读取一行用户输入,并使用字符串流(如 `istringstream`)将这一行输入分割成单词。以下是实现的一个简单示例:
```cpp
#include <iostream>
#include <sstream>
#include <string>
int count_words(const std::string& input) {
int word_count = 0;
std::istringstream iss(input);
std::string word;
// 使用 iss 逐个读取单词直到遇到非单词字符(即不是字母、数字或下划线)
while (iss >> word) {
++word_count; // 每找到一个单词就增加计数器
}
return word_count;
}
int main() {
std::string line;
std::cout << "请输入一行字符(单词由空格分隔):" << std::endl;
getline(std::cin, line);
int word_count = count_words(line);
std::cout << "该行包含的单词数为: " << word_count << std::endl;
return 0;
}
```
在这个程序中,`count_words` 函数会统计输入字符串中有效单词的数量。注意,这个函数假设单词是由字母、数字或下划线组成的,且单词间用空格分隔。
用 Dev-c++编写一个程序输入一行字符,统计其中有多少个单词。单词之间用一个或多个空格 分隔开。
以下是一个使用Dev-C++编写的程序,可以输入一行字符并统计其中的单词数目:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int count = 0;
bool flag = true; // 标志位,表示是否在单词中
cout << "请输入一行字符:" << endl;
getline(cin, str);
for (int i = 0; i < str.length(); i++) {
if (str[i] == ' ') { // 遇到空格
flag = true;
} else if (flag) { // 进入新单词
count++;
flag = false;
}
}
cout << "该行字符中有 " << count << " 个单词。" << endl;
return 0;
}
```
该程序使用字符串类型存储输入的一行字符,使用计数器统计单词数目,使用标志位判断是否进入新的单词。在循环中遍历每个字符,遇到空格时将标志位设为 `true`,表示当前不在单词中,遇到非空格字符时检查标志位,如果为 `true`,则进入新的单词,同时将计数器加一,将标志位设为 `false`,表示当前在单词中。
注意:该程序只适用于单词之间用空格分隔的情况,对于其他分隔符可能需要进行修改。
阅读全文