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

    xiaoxiao2021-03-26  21

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

    转载请注明原文地址: https://ju.6miu.com/read-660436.html

    最新回复(0)