c语言统计一句话中的单词个数
时间: 2023-10-13 14:24:49 浏览: 179
以下是一个简单的示例程序,用于统计一句话中的单词个数:
```
#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 语言编写的程序,可以统计一句话里的单词个数:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int wordCount = 0, i = 0;
printf("Enter a sentence: ");
fgets(str, MAX_LEN, stdin); // 从标准输入读取一行
// 遍历字符串
while (str[i] != '\0') {
// 如果当前字符是空格或换行符,说明一个单词结束,单词数加1
if (str[i] == ' ' || str[i] == '\n') {
wordCount++;
}
i++;
}
printf("There are %d words in the sentence.\n", wordCount + 1); // 最后一个单词后面没有空格或换行符,所以要加1
return 0;
}
```
在这个程序中,我们使用 `fgets` 函数从标准输入读取一行字符串,然后遍历字符串,统计单词个数。如果当前字符是空格或换行符,说明一个单词结束,单词数加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;
}
```
阅读全文