编写函数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数组里面 } }
