| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2775 人关注过本帖
标题:统计子串在母串出现的次数
只看楼主 加入收藏
黑暗骑士5DSB
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2020-3-23
结帖率:50%
收藏
 问题点数:0 回复次数:3 
统计子串在母串出现的次数
编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符串为:asd,则应输出n=4。。

函数接口定义:
int fun(char *str,char *substr);

      
   
其中str 和 substr是用户传入的参数。函数统计substr指针所指的字符串在str指针所指的字符串中出现的次数,并返回次数。

裁判测试程序样例:
#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
 int n;
 n=fun(str,substr);
 printf("n=%d\n",n);
 return 0;
}


/* 请在这里填写答案 */

      
   
输出样例:
n=4


完全不知道咋写啊啊啊,求指点
搜索更多相关主题的帖子: 字符串 str 次数 统计 char 
2020-05-09 16:47
fengyinxqy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2020-5-2
收藏
得分:0 
程序代码:
#include <stdio.h>
int StrCount(char *str, char *substr); //自定义函数声明。在母字符串中找子字符串的出现次数
int main()
{
    char str1[20];                 //初始化数组(母字符串)
    char str2[10];                //初始化数组(子字符串)
    int count = 0;

    printf("Enter str1:\n");
    scanf("%s",str1);
    printf("Enter str2:\n");
    scanf("%s",str2);

    count = StrCount(str1, str2); //调用函数
    printf("count is %d\n", count);

    return 0;
}
int StrCount(char *str, char *substr) //定义函数
{
    int number = 0;
    char *p; //字符串辅助指针
    char *q; //字符串辅助指针
    while (*str != '\0')
    {
        p = str;
        q = substr;
        while ((*p == *q) && (*p != '\0') && (*q != '\0')) //判断
        {
            p++;
            q++;
        }
        if (*q == '\0')
        {
            number++;
        }
        str++; //从下一个字符开始
    }
    return number;
}
2020-05-09 17:07
qing_yx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:70
注 册:2020-4-26
收藏
得分:0 
#include <stdio.h>
#include <string.h>

int fun(char *str, char *substr);
int main(void)
{
    char str[81] = "asdasasdfgasdaszx67asdmklo", substr[4] = "asd";
    int n;
    n = fun(str, substr);
    printf("n=%d\n", n);
    return 0;
}


int fun(char *str, char *substr)
{
    int ret = 0;
    char temp[4] = { 0 };

    for (int i = 0; str[i] != '\0';i++)
    {
        strncpy(temp, str+i, 3); //每次取3个字符给temp,再与substr比较

        if (strcmp(temp, substr) == 0)
            ret++;
    }
    return ret;
}
2020-05-09 17:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10559
专家分:42996
注 册:2014-5-20
收藏
得分:0 
用strstr()走一遍
2020-05-09 20:37
快速回复:统计子串在母串出现的次数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022613 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved