输入要求:若干个以空格分割的单词序列,单词的总数不超过1000个,每个单词的长度不超过20个英文字符,这里单词不区分大小写,例如 Hello与hELLo被认为是相同的单词。
例如
【输入示例】 Hello world welcome English hello word World HELLO english hELLo
【输出示例】
English 2
Hello 4
Welcome 1
Word 1
World 2
补充一下,我用的是vc6,所以要在vc6上通过才可以的,还有打开txt的这种形式没法通过我们的测评系统,所以请大家写成直接输入字符串的那种形式,而不要把输入的东西放进txt文件中,谢谢大家了
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
typedef struct Word {
char w[20];
int k;
struct Word *next;
}pWord;
int main(int argc, char *argv[])
{
FILE *fp = fopen("input.txt","r");
struct Word *Head = NULL;
while (!feof(fp)) {
char *p = (char *)malloc(20*sizeof(char));
fscanf(fp, "%s", p);
if(Head == NULL){
struct Word *temp = (struct Word *)malloc(sizeof(struct Word));
strcpy(temp->w, p);
temp->k = 1;
temp->next = NULL;
Head = temp;
} else {
struct Word *pp = Head;
while (pp != NULL) {
if (strcasecmp( pp->w, p) == 0){
++pp->k;
break;
} else {
pp = pp->next;
}
}
if (pp == NULL){
struct Word *temp = (struct Word *)malloc(sizeof(struct Word));
strcpy(temp->w, p);
temp->k = 1;
temp->next = Head;
Head = temp;
}
}
}
struct Word *q = Head;
while (q != NULL) {
printf("%s ", q->w);
printf("%d\n", q->k);
q = q->next;
}
return 0;
} /*------end of main------*
我是把要读写的东西放进了一个input.txt中 这样好读写一下 你看看行不行吧