统计单词出现次数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct word
{
int num;
char str[50];
};
int Compare(const void *a,const void *b)
{
return strcmp((char*)a, (char *)b);
}
int main()
{
struct word word[20];
int i = 0, j = 0;
while (1)
{
char a = getchar();
if (a >= 'A'&&a <= 'Z')
{
a = a - 'A' + 'a';
}
if (a != ' '&&a != ','&&a != '.'&&a != '\n')
{
word[i].num = 1;
word[i].str[j] = a;
j++;
word[i].str[j] = '\0';
}
else if(a!='\n')
{
i++;
j = 0;
word[i].num = 0;
word[i].str[j] = '\0';
}
else
{
break;
}
}
qsort(word, i + 1, sizeof(word[0]), Compare);
for (int ii = 0; ii < i+1; ii++) {
if (strcmp(word[ii].str, word[ii + 1].str) == 0) {
word[ii + 1].num = word[ii].num + 1;
word[ii].num = 0;
}
}
for (int ii = 0; ii < i+1; ii++) {
if (word[ii].num != 0 && word[ii].str[0] != '\0')
printf("%s:%d\n", word[ii].str, word[ii].num);
}
}
本文介绍了一个简单的C语言程序,该程序能够读取用户输入的文本,并统计其中每个单词出现的次数。通过使用结构体和qsort函数进行排序,程序有效地实现了单词的统计与输出。
379

被折叠的 条评论
为什么被折叠?



