用c语言写一个程序要求可以统计一句话里的单词个数
时间: 2024-06-09 20:04:30 浏览: 203
下面是一个统计单词个数的C语言程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char sentence[MAX_LENGTH];
int i, count = 1;
printf("请输入一句话:\n");
fgets(sentence, MAX_LENGTH, stdin);
for (i = 0; i < strlen(sentence); i++) {
if (sentence[i] == ' ') {
count++;
}
}
printf("单词个数为:%d\n", count);
return 0;
}
```
程序首先定义了一个最大长度为100的字符数组`sentence`,用于存储输入的句子。然后通过`fgets`函数从标准输入(键盘)读取一行字符串到`sentence`中。
接下来,程序通过一个`for`循环遍历`sentence`数组中的每个字符,当遇到空格时,单词个数加1。最后输出单词个数即可。需要注意的是,由于每个句子最后都有一个换行符,因此初始`count`被设为1而不是0。
相关问题
c语言统计一句话中的单词个数
以下是一个简单的示例程序,用于统计一句话中的单词个数:
```
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100]; // 声明一个最大长度为100的字符数组
int word_count = 1; // 初始化单词个数为1,因为第一个单词前没有空格
printf("请输入一句话:\n");
fgets(sentence, 100, stdin); // 从标准输入中读取一行字符串
for (int i = 0; i < strlen(sentence); i++) {
if (sentence[i] == ' ') { // 如果遇到空格,说明一个单词结束,单词个数加1
word_count++;
}
}
printf("这句话中共有%d个单词。\n", word_count);
return 0;
}
```
该程序使用了一个字符数组来存储用户输入的一句话,然后遍历该字符串,每当遇到一个空格时,就说明一个单词结束,单词个数加1。最终输出单词个数即可。注意,第一个单词前没有空格,因此需要将单词个数初始化为1。
c语言一句话单词频率统计
C语言中,要统计一句话中每个单词的频率,可以采用以下步骤:
1. **预处理**: 将句子转换成小写并去除标点符号。
2. **分割单词**: 使用`strtok()`函数将句子分解成单个单词。
3. **存储频率**: 创建一个结构体或数组来存储每个单词及其出现次数,如键值对形式。
4. **遍历和计数**: 遍历每个单词,如果在存储结构中找到,则增加对应的计数;若未找到,则添加新条目并设为1。
5. **更新频率**: 每次遇到单词,都会检查并更新相应的计数。
下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 100
typedef struct {
char word[MAX_WORDS];
int count;
} WordCount;
WordCount word_counts[MAX_WORDS];
void count_words(char* sentence) {
char* token = strtok(sentence, " ,.;:\"\'\t\n");
while (token != NULL) {
strcpy(word_counts[token - sentence], token);
for (int i = 0; i < MAX_WORDS; ++i) {
if (strcmp(word_counts[i].word, token) == 0) {
word_counts[i].count++;
break;
}
}
token = strtok(NULL, " ,.;:\"\'\t\n");
}
}
int main() {
char sentence[] = "This is a sample sentence with words that will be counted.";
count_words(sentence);
// 输出结果
for (int i = 0; i < MAX_WORDS; ++i) {
if (word_counts[i].count > 0) {
printf("%s: %d\n", word_counts[i].word, word_counts[i].count);
}
}
return 0;
}
```
阅读全文