下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 请改正程序中的错误或在下画线处填上正确的内容并把下画线删除,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序

admin2021-07-09  37

问题 下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。
    请改正程序中的错误或在下画线处填上正确的内容并把下画线删除,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
1  #include  <stdlib.h>
2  #include<conio.h>
3  #include<string.h>
4  include  <stdio.h>
5  #define N 80
6  int fun (char*s , char*t)
7   { int n;
8    char*p , *r;
9  n=0;
10   /*********found*********/
11    *r=t;
12  while(*s)
13   {
14  p=s;
15    while(*r)
16    {
17   if(*r==*p)
18    {
19    r++;
20  p++;
24    }
22    else
23    break;
24    if(*r==’\0’)
25    n++;
26    }
27    /*********found*********/
28    1_____ ;
29    s++;
30    }
31    return n;
32  }
33  void main()
34  {char a[N],b[N];int m;
35   printf("\nPlease enter string a:’’);
36  gets(a);
37   printf(’’\nPlease enter substring
38  b:’’);
39   gets(b);
40   m=fun(a,b);
41   printf(’’\nThe result is:m=%d\n’’,m);
42

选项

答案(1)r=t; (2)r=t;或r=&t[0];

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

最新回复(0)