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

来源:互联网 发布:ios 导出沙盒数据 编辑:程序博客网 时间:2024/05/16 05:14

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



0 0