编写函数void count(char a[],char w[][10],int n,int b[])。
功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分割符),拧将统计结果依次保存在b指向的数组中。
#include <stdio.h>
void count(char a[],char w[][10],int n,int b[]);
int main()
{
char a[] = {"cat dog dogs cat hello cat flower hello"};
char w[4][10] = {"dog","cat","hello","flower"};
int b[20];
int i;
count(a,w,4,b);
for(i = 0;i < 4;i++)
{
printf("%s : %d\n",w[i],b[i]);
}
return 0;
}
void count(char a[],char w[][10],int n,int b[])
{
int i,j,k; //定义循环变量
int count = 0; //计数
for(i = 0;i < n;i++) //从第一个单词找起
{
k = 0; //每次找一个单词都要从a数组重新开始找,k每次都要置零
j = 0;
count = 0; //每次新找的单词个数也要置零
while(a[k] != '\0')
{
while(a[k] == w[i][j]) //一直找每一位都相同的
{
k++;
j++;
}
if(w[i][j] == '\0' && a[k] == ' ') //当要找的单词结束并且这个相同的一串字符
{ 在数组a中也是一个单词,count才会计数
count++;
j = 0; //j置零继续寻找
}
else
{
j = 0; //如果在a中不是单词,j置零继续寻找
}
k++;
}
b[i] = count; //最后把个数放在b数组里面
}
}