下列给定程序中,函数fun()的功能是:统计字符串substr在字符串srt中出现的次数。例如,若字符串为aaas 1 kaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或

admin2010-09-14  12

问题 下列给定程序中,函数fun()的功能是:统计字符串substr在字符串srt中出现的次数。例如,若字符串为aaas 1 kaaas,子字符串为as,则应输出2。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。   
   试题程序:
    #include <stdio.h>
   fun (char *str, char *substr)
    {int i, j, k, num=0;
   /*************found**************/
      for (i=0, str , i++)
         for (j=i, k=O; substr [k]==str [ j ]; k++, j ++ )
      if (substr [k+l]==’ \0’)
          {num++;
             break;
        }
      return num;
   }
   main ( )
    { char str[80],substr[80];
      printf("Input a string: ");
      gets (str);
      printf("Input a sbustring: ");
      gets (substr);
      printf ("%d\n ", fun (str, substr) );

选项

答案错误:for(i=0,srt[i],i++) 正确:for(i=0;str[i];i++)

解析 从字符串s中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历;若s串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若s串的字符和t串的字符不对应相同,则继续对s串的下一个字符进行处理。
转载请注明原文地址:https://kaotiyun.com/show/YXID777K
0

相关试题推荐
最新回复(0)