编写函数void count(char a[],char w[][10],int n,int b[])。功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分割符),拧将统计结果依次保存在b指向的数组中。
/*****************************************************
copyright (C), 2016-2017, Lighting Studio. Co., Ltd.
File name:
Author:luoye Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <string.h>
void count(char a[],char w[][10],int n,int b[])
{
int i, j, k;
int strlen_1 = strlen(a);
int strlen_2[n]; //w数组中每个子串的长度
int count = 0;
for( i = 0; i < n; i++) //计算每个子串的长度
{
strlen_2[i] = strlen(w[i]);
}
for( k = 0; k < n; k++)
{
count = 0;
for( i = 0; i <strlen_1-strlen_2[k]+1; i++ )
{
for( j = 0; j < strlen_2[k]; j++)
{
if( w[k][j] != a[i+j]) //如果主串和子串不用 则跳出循环
{
break;
}
}
if( j == strlen_2[k]) //若一直没有跳出循环 则主串和子串有相同的部分
{
count++;
}
}
b[k] = count; //储存每个子串的个数
}
}
int main()
{
char a[] = "my name is ,book apple my name name.";
char w[5][10] = { "my"," name"," is ","book"," apple "};
int b[5]={0};
int i;
count(a,w,5,b); //调用函数
for( i = 0; i < 5; i++)
{
printf("%s:%d\n",w[i],b[i]);
}
return 0;
}