【C程序改错】功能:编写一个函数,该函数可以统计一个长度为3的字符串在另 一个字符串中出现的次数。

/*----------------------------------------------------------功能:编写一个函数,该函数可以统计一个长度为3的字... /*----------------------------------------------------------

功能:编写一个函数,该函数可以统计一个长度为3的字符串在另
一个字符串中出现的次数。
例如:假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符
串为:asd,则应输出n=4。

------------------------------------------------------*/

#include<stdio.h>
#include<string.h>
#include<conio.h>
int fun(char *str,char *substr)
{
/**********FOUND**********/
unsigned int i,n=0
/**********FOUND**********/
for(i=0;i<=strlen(str);i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]))
/**********FOUND**********/
++i;
return n;
}

main()
{
char str[81],substr[4];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
}
展开
 我来答
百度网友289c0c0
推荐于2018-02-28 · TA获得超过4183个赞
知道大有可为答主
回答量:1531
采纳率:89%
帮助的人:623万
展开全部

for循环有问题,而且最后不应该是++i啊,应该是++n。

#include <stdio.h>
#include <string.h>
#include <conio.h>
int fun(char * str, char * substr)
{
    unsigned int i, n = 0;
    for(i = 0; i < strlen(str); i++)
        if((str[i] == substr[0]) && (str[i + 1] == substr[1]) && (str[i + 2] == substr[2]))
            ++n;

    return n;
}

int main(void)
{
    char str[81], substr[4];
    int n;
    printf("输入主字符串: ");
    gets(str);
    printf("输入子字符串: ");
    gets(substr);
    puts(str);
    puts(substr);
    n = fun(str, substr);
    printf("n = %d\n", n);

    return 0;
}

shine1991
科技发烧友

2017-08-20 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
/*----------------------------------------------------------

功能:编写一个函数,该函数可以统计一个长度为3的字符串在另
一个字符串中出现的次数。
例如:假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符
串为:asd,则应输出n=4。

------------------------------------------------------*/

#include<stdio.h>
#include<string.h>
#include<conio.h>
int fun(char *str,char *substr)
{
/**********FOUND**********/
unsigned int i,n=0;
/**********FOUND**********/
for(i=0;i<strlen(str)-2;i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]))
/**********FOUND**********/
++n;
return n;
}

main()
{
char str[81],substr[4];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2017-08-20 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
int fun(char *str,char *substr)
{
/**********FOUND**********/
unsigned int i,n=0;
/**********FOUND**********/
for(i=0;i<strlen(str)-2;i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]))
/**********FOUND**********/
++n;
return n;
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yypopo19
2017-08-20 · TA获得超过158个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:53.2万
展开全部
#include<stdio.h>
#include<string.h>
#include<conio.h>
int fun(char *str,char *substr)
{
/**********FOUND**********/
unsigned int i,n=0;
/**********FOUND**********/
for(i=0;i<=strlen(str)-2;i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]))
/**********FOUND**********/
++n;
return n;
}

main()
{
char str[81],substr[4];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jhanker
2016-12-26 · TA获得超过1479个赞
知道小有建树答主
回答量:675
采纳率:73%
帮助的人:497万
展开全部
 /**********FOUND**********/
  unsigned int i,n=0;
  /**********FOUND**********/
  for(i=0;i<strlen(str);i++)
    if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2]))
      /**********FOUND**********/
      ++n;
  return n;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式