关于#c语言#的问题:以文献内容和一个单词为参数,统计文献中该单词出现的次数(以参数形式返回给该函数的调用者),并将第一次出现该单词在数组中的位置指针作为返回值
问题描述:
c语言
1.文献查找一般是通过关键词进行查找的,英文文献的关键词是出现次数最多的单词。现给定一篇英文文献,用一个字符串数组保存,数组的每个元素存储的是文献中的一句话,书的内容不多于10000句。(单词仅由字母构成)
实现一个函数,以文献内容和一个单词为参数,统计文献中该单词出现的次数(以参数形式返回给该函数的调用者),并将第一次出现该单词在数组中的位置指针作为返回值。
2.在上述实现的函数基础上,找出文献的关键词
答
参数用指针,找到单词第一个字符出现位置,然后逐个进行比较,全部匹配则计数加1
#include <stdio.h>
char *findwords(char *s,char *w,int *count)
{
int i=0,j=0,k;
char *p = NULL;
while(s[i] != 0)
{
j=0;
k = i;
while(s[k] != 0 && w[j] != 0 && s[k++] == w[j++]);
if(w[j] == 0)
{
(*count)++;
if(p == NULL)
p = s+i;
i=k-1;
}
i++;
}
return p;
}
int main()
{
char s[10001];
char w[101];
char *p = NULL;
int count = 0;
gets(s);
gets(w);
p = findwords(s,w,&count);
printf("%d",count);
return 0;
}