您的位置:首页 > 其它

编写函数void count(char a[],char w[][10],int n,int b[])。功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分

2017-02-05 14:19 806 查看
 编写函数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
; //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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐