C语言统计句子中单词的个数
时间: 2024-06-13 15:06:12 浏览: 121
以下是C语言统计句子中单词个数的代码示例:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, word_count;
printf("请输入一个句子:");
gets(str);
len = strlen(str);
word_count = 1;
for (i = 0; i < len; i++)
{
if (str[i] == ' ')
{
word_count++;
}
}
printf("单词个数为:%d", word_count);
return 0;
}
```
代码说明:
1. 首先定义一个字符数组`str`,用于存储用户输入的句子。
2. 使用`gets()`函数获取用户输入的句子。
3. 使用`strlen()`函数获取句子的长度。
4. 定义一个变量`word_count`,用于记录单词的个数,初始化为1,因为第一个单词前面没有空格。
5. 使用`for`循环遍历句子中的每个字符,如果遇到空格,则单词个数加1。
6. 最后输出单词个数。
相关问题
c语言统计相同单词的个数
在 C 语言中,统计相同单词的个数通常需要一些字符串处理步骤,包括读取输入、分割单词、存储并计数。这里提供一个简单的示例,假设我们没有使用库函数,而是手动处理:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 100 // 最大单词数量
#define MAX_WORD_LENGTH 50 // 单词最大长度
// 定义结构体来存储单词及其出现次数
typedef struct {
char word[MAX_WORD_LENGTH + 1];
int count;
} WordCount;
void split_and_count_words(char* input) {
char word[MAX_WORD_LENGTH + 1]; // 当前处理的单词
int words_processed = 0; // 已经处理的单词数量
int i;
// 分割单词并统计
for (i = 0; i <= strlen(input); i++) {
if (input[i] == ' ' || input[i] == '\n') { // 遇到空格或换行符
if (strlen(word) > 0) { // 如果当前单词非空
strcpy(WordCount[words_processed].word, word);
WordCount[words_processed].count = 1; // 初始计数为1
words_processed++;
}
word[0] = '\0'; // 清空当前单词
} else {
word[strlen(word)] = input[i]; // 继续添加字符
}
}
// 处理最后一个单词,如果还有剩余
if (strlen(word) > 0) {
strcpy(WordCount[words_processed].word, word);
WordCount[words_processed].count = 1; // 计数加一
words_processed++;
}
// 初始化剩余位置为0
for (; words_processed < MAX_WORDS; words_processed++) {
strcpy(WordCount[words_processed].word, "");
WordCount[words_processed].count = 0;
}
// 现在 WordCount 数组包含了所有单词及其出现次数
}
int main() {
char input[1024];
printf("请输入一段文本: ");
fgets(input, sizeof(input), stdin);
split_and_count_words(input);
int total_words = 0;
for (int i = 0; i < MAX_WORDS; i++) {
if (WordCount[i].count > 0) {
printf("%s出现了 %d 次\n", WordCount[i].word, WordCount[i].count);
total_words += WordCount[i].count;
}
}
printf("总共有 %d 个不同的单词.\n", total_words);
return 0;
}
```
这个程序会接收用户输入的文本,然后统计其中的不同单词及它们出现的次数。注意这只是一个基础版本,实际应用可能会需要更复杂的字符串处理和错误处理。
c语言统计单词的个数
在C语言中,统计单词个数通常涉及到读取输入字符串、分割字符串成单个单词以及计算单词的数量。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的函数
int count_words(char* str) {
int word_count = 0;
int i = 0, j;
// 遍历字符串
while (str[i]) {
// 如果遇到空格或其他非字母字符,表示单词结束
if (!isalpha(str[i])) {
if (i > 0 && isalpha(str[i - 1])) { // 检查前一个字符是否也是字母,避免把空格后的标点也算作单词
word_count++;
}
i++; // 跳过空格或特殊字符
} else {
i++; // 非空格字符继续遍历
}
}
// 检查最后一个单词,如果有则加一
if (isalpha(str[i - 1])) {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("请输入一段文字:");
fgets(input, sizeof(input), stdin); // 从用户输入读取字符串
input[strcspn(input, "\n")] = '\0'; // 移除行尾的换行符
int wordCount = count_words(input);
printf("单词总数为:%d\n", wordCount);
return 0;
}
```
这个程序首先读取用户的输入,然后使用`count_words` 函数来计算单词数。它遍历输入字符串,每次遇到非字母字符就认为单词结束,并增加计数器。注意这里假设单词由连续的字母组成,标点符号不算单词。
阅读全文