您的位置:首页 > 其它

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

2017-02-05 17:56 1566 查看
 编写函数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;

       
4000
                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   




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐