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

 编写函数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;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值