编程练习

来源:互联网 发布:剑三捏脸数据成女 编辑:程序博客网 时间:2024/05/22 09:43
//编写函数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++;
}
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]);
}
}
0 0
原创粉丝点击