编写函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asdas zx67 asd mklo

admin2013-12-10  15

问题 编写函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asdas zx67 asd mklo”。子字符串为”as”,函数返回值是6。函数ReadWrite()实现从数据文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。
【试题程序】
  #include
  #include
void ReadWrite();
int findStr(char*str.char*substr)
{
}
main()
{
  char str[81],substr[3];
  int n;
  printf(“输入原字符串:”);
  gets(str);
  printf(“输入子字符串:”);
  gets(substr);
  puts(str);
  puts(substr);
  n=findStr(str,substr);
  printf(“n=%d\n”,n);
  ReadWrite();
}
void ReadWrite()
{
  char str[81],substr[3],oh!
  int n,len,i=0;
  FILE*rf,*wf!
  rf=fopen(“in.dat”。“r”);
  wf=fopen(“out.dat”,“W”);
  while(i<5){
    fgets(str,80,rf);
    fgets(substr,10,rf);
    len=strlen(substr)一1;
    ch=substr[1en],
    if(oh==\n||ch==0xla)
    substr[1en]=0;
    n=findStr(str,substr);
    fprintf(wf。“%d\n”n);
    i++;
  }
  fclose(rf);
  felose(wf);
}

选项

答案 int findStr(char*str.char*substr) {int i,cnt=0; /*定义变量*/ for(i=0;i<80;i++) /*统计次数*/ if(*(str+i)==*substr&&*(str十 i+1)==*(substr+1)) /*判断条件*/ cnt++; return cnt; }

解析
转载请注明原文地址:https://kaotiyun.com/show/kElZ777K
0

最新回复(0)