【C程序改错】功能:编写一个函数,该函数可以统计一个长度为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);
}

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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-20
/*----------------------------------------------------------

功能:编写一个函数,该函数可以统计一个长度为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);
}

第2个回答  2017-08-20
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;
}

第3个回答  2017-08-20
#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);
}

第4个回答  2016-12-26
 /**********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;

本回答被提问者采纳
相似回答