编写一个c++程序,从键盘接收用户输入的一个字符串,创建一个map对象,用来记录每个单词出现的次数。
时间: 2023-06-08 10:03:53 浏览: 122
好的,这是一个关于C语言程序的技术问题,我可以为您提供帮助。您可以使用C语言中的字符串处理库函数将用户输入的字符串分割成单词,然后使用map对象记录每个单词出现的次数。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <map>
using namespace std;
int main()
{
char str[100];
map<string, int> word_count;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin); // 从键盘接收用户输入的字符串
char* p = strtok(str, " \r\n"); // 分割字符串为单词
while (p != NULL) {
string word(p);
word_count[word]++;
p = strtok(NULL, " \r\n");
}
// 输出每个单词出现的次数
map<string, int>::iterator it;
for (it = word_count.begin(); it != word_count.end(); it++) {
printf("%s: %d\n", it->first.c_str(), it->second);
}
return 0;
}
```
这个程序可以从键盘接收用户输入的一个字符串,并将字符串中的单词存储到map对象中,最后输出每个单词出现的次数。注意,为了保证正确性,需要在编译选项中加入`-std=c++11`参数,以启用C++11标准。
阅读全文