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

    xiaoxiao2021-03-26  58

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

    #include <stdio.h> #include <string.h> void count(char a[],char w[][10],int n,int b[]);

    int main() {         char str[100] = "word/or.are,my&my.or/orhr;quit>time,word;my*";         char word[5][10] = {"word","my","quit","or","are"};         int b[5];           //b数组用来存放统计结果         int i;         printf("The strings array is :\n%s\n",str);         printf("The word array is :\n");         for( i = 0 ; i < 5 ; i++ )         {                 printf("%-10s",word[i]);         }         count(str,word,5,b);         printf("\nThe w array words appear time in word :\n");         for(i = 0 ; i < 5 ; i++  )         {                 printf("%-4d",b[i]);         }         printf("\n");     return 0; } void count(char a[],char w[][10],int n,int b[]) {         int i , j , k ;         int len , count ;     //count用来记录单词个数,len用来记录有相同字符的个数         for( i = 0 ; i < n; i++ )         {                 j = 0;             //每一个单词都要从a数组的第一个字符开始做比较                 count = 0;         //每一个单词做一次计数记录                 while( a[j] != '\0')                 {                         k = 0;         //每做完一次比较w[i]都要单词的首字符                         len = 0;                         if( isalpha(a[j]) )    //当a数组的元素是字母时,与w的单词作比较                         {                                 while( w[i][k] == a[j] )                                 {                                         k++;                                         j++;                                         len++;                                 }                         }                         if( len == strlen(w[i]) &&  !isalpha(a[j]) )   //确保比较的是a数组分割符分割开的单词

                            {                                 count++;                         }                         j++;                 }                 b[i] = count;         }         return ; }

    程序运行结果:

    The strings array is : word/or.are,my&my.or/orhr;quit>time,word;my* The word array is : word      my        quit      or        are        The w array words appear time in word : 2   3   1   2   1   

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

    最新回复(0)