m0_62138486 2023-03-22 21:42 采纳率: 98.6%
浏览 37
已结题

此程序可以实现在一个字符串中汉字出现的频数计算,目前想要输入一个字符串后判断其中各个汉字出现的频数之后,再循环输入另一个字符串判断各个汉字出现的频数,如何实现这种循环操作?

此程序可以实现在一个字符串中汉字出现的频数计算,目前想要输入一个字符串后判断其中各个汉字出现的频数之后,再循环输入另一个字符串判断各个汉字出现的频数,如何实现这种循环操作?

此程序不仅适用于中文字、句检索计数,同样适用于其他字符。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Chinesestrfind(char *A,char*B)//在B中检索A的出现次数// 
{
    int lA=strlen(A),lB=strlen(B),count=0,i,j,c;
    char temp[lA+1];
    for(i=0;i+lA<lB;i++)
    {
        for(j=0;j<lA;j++)
        {
            temp[j]=B[i+j];
        }
        if(strcmp(A,temp)==0)
        {
            count++;
        }
    }
    return count;
} 

int main ()
{
    char A[]="点击",B[]="点击获得更多信息购买最新产品获得优惠优惠信息点击链接";//在B中检索A的出现次数// 
    int count=Chinesestrfind(A,B);
    printf("\"%s\"在字符串中出现%d次。\n",A,count);
    return 0;
}

  • 写回答

5条回答 默认 最新

  • CSDN专家-link 2023-03-22 21:50
    关注

    这也不是检索汉字啊,这是检索一串汉字

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int Chinesestrfind(char *A,char*B)//在B中检索A的出现次数// 
    {
        int lA=strlen(A),lB=strlen(B),count=0,i,j;
        char *temp = (char*)malloc(lA+1);
        temp[lA] = 0;
        for(i=0;i+lA<lB;i+=lA)
        {
            for(j=0;j<lA;j++)
            {
                temp[j]=B[i+j];
            }
            if(strcmp(A,temp)==0)
            {
                count++;
            }
        }
    
        free(temp);
        return count;
    } 
     
    int main ()
    {
        char a[] = "中";
        int hs = strlen(a);
        char s[1000];
        char f[1000];
        printf("输入主串:");
        gets(f);
        while(1)
        {
            printf("输入搜索串:");
            gets(s);
            int len = strlen(s);
            if(len == 0)
                break;
            for(int i=0;i<len;i+=hs)
            {
                char *p = (char*)malloc(hs+1);
                memcpy(p,s+i,hs);
                p[hs] = 0;
                int count=Chinesestrfind(p,f);
                printf("\"%s\"在字符串中出现%d次。\n",p,count);
                free(p);
            }
        }
       
        system("pause");
        return 0;
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 3月22日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)