首页 > 学院 > 开发设计 > 正文

编程练习3.2

2019-11-11 05:18:18
字体:
来源:转载
供稿:网友

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

#include <stdio.h>#include <stdlib.h>#include <string.h>void input(char w[][10],int n);         //输入函数void count(char a[],char w[][10],int n,int b[]);int main(){    char w[10][10];	char str[100];	int result[50];             //用于存放统计结果	int n = 0;                 //单词个数	PRintf("请输入一个总的字符串:/n");	fgets(str,100,stdin);	printf("请确认需要找出的单词数:/n");	scanf("%d",&n);	printf("请输入%d个单词:/n",n);	input(w,n);	count(str,w,n,result);	return 0;}void input(char w[][10],int n){	int i = 0;	int j = 0;	for (i = 0 ; i < n ; i++)	{		scanf("%s",w[i]);	}}void count(char a[],char w[][10],int n,int b[]){	int count_num = 0;	int i = 0;                  //i为总字符串a[]的循环变量	char temp[10];       //定义临时数组用于和w比较	int j = 0;          //该循环变量用于临时数组	int k = 0;            //该循环变量用于b[]	int l = 0;            //该循环变量用于w[][10]	for (l = 0 ; l < n ;l++ )             //现从w中拿出第0行进行比较	{		for ( i = 0 ; i < strlen(a) ; i++)		{			while ( (a[i] >= 'A' && a[i]  <= 'Z') 					|| ( (a[i] >= 'a' && a[i] <='z') ) )			{				temp[j]=a[i];				i++;				j++;			} 			temp[j] = '/0';               //赋予temp /0 字符串结束标志			if ( strcmp(temp,w[l]) == 0)			{				count_num++;			}			j = 0;                       //j置0,再重新为temp赋值		}		b[k] = count_num;		k++;		count_num = 0;	}	printf("结果分别为:/n");	for ( i = 0 ; i < k ; i++)	{		printf("%d/n",b[i]);	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表