c语言统计字符串中指定的单词个数

默认分类 未结 1 1007
0月袭小姐052
0月袭小姐052 2023-03-22 17:20
相关标签:
1条回答
  • 2023-03-22 17:51

    给你个类似的。。。你小改下,就应该可以了。希望对你有帮助

    /*编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

    例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,

    子字符串为:as,则应输出6。

    [程序分析]

    由于小串中只有2个字符所以可用str[i]==sbustr[0]&&str[i+1]==substr[1]来判断小串是否与长串当前位置(str[i])相同(即出现一次)。

    因而只要让长串当前位置逐一向后移即可(用for()循环来完成)

    */

    //[源程序]

    #include"stdio.h"

    #include"string.h"

    #include"conio.h"

    intfun(char*str,char*substr)

    {inti,n=0,s=strlen(str);

    for(i=0;i

    if((str[i]==substr[0])&&(str[i+1]==substr[1]))

    n++;

    returnn;

    }

    main()

    {

    charstr[81],substr[3];

    intn;

    printf("输入的字符串:");

    gets(str);

    printf("子字符串:");

    gets(substr);

    puts(str);

    puts(substr);

    n=fun(str,substr);

    printf("n=%d ",n)

    }

    /*******************************************************************************************************/

    按你的意思我改了下调用函数里的

    intfun(char*str,char*substr)

    {

    inti,j,n=0,s=strlen(str),m=strlen(substr),pan=1;

    printf("%d ",m);

    for(i=0;i

    {pan=1;

    for(j=0;j

    if((str[i+j]!=substr[j]))//这是进行比较,不是跳出

    {pan=0;

    break;}

    if(pan)

    n++;

    }

    returnn;

    }

    #include #include int search_string(char *target,char *search)//target可以为"asgeage ghelloae gegahellosd hell oage hello"//search可以为"hello"{ bool judge = true; int n = 0; for(int i = 0; i < strlen(target); i++) { judge = true; for(int j = 0; j < strlen(search); j++) if(target[i+j] != search[j]) { judge = false; break; } if(judge) n++; } return n;}void main(void){ char target[400] = {0},search [400] = {0};// printf("输入字符串:\n"); gets(target); printf("输入要查找的字符串\n"); scanf("%s",search); printf("出现的次数为:%d\n",search_string(target,search));} 不懂再问哈

    0 讨论(0)
提交回复