统计一个长度为2的子字符串在另一个字符串中出现的次数.例如:假定输入的字符串为“asd asasdfg asd as zx67 asd mklo”,子字符串为“as”,函数返回值为6。

来源:互联网 发布:真皮床哪个品牌好 知乎 编辑:程序博客网 时间:2024/06/08 19:38
编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“asd asasdfg asd as zx67 asd mklo”,子字符串为“as”,函数返回值为6。
函数readwriteDat()的功能是实现从文件IN90.DAT中读取两个字符串,并调用函数findStr(),最后把结果输出到文件OUT90.DAT中。
#include  <stdio.h>#include  <string.h>#include  <windows.h>#include  <conio.h>#define  N  81int findStr(char *str,char *substr){int i,j=0;for(i=0;((i<81)&&(str[i+1]!='\0'));i++){if((str[i]==substr[0])&&(str[i+1]==substr[1])){j++;i++;}}return j;}main(){  char str[81],substr[3];  int n;  system("cls");  printf("Enter a string : "); gets(str);  printf("Enter a substring: "); gets(substr);  puts(str);puts(substr);  n=findStr(str,substr);  printf("n=%d\n",n);  ReadWrite();}ReadWrite(){     char str[81],substr[6],ch;  int n,len,i=0;  FILE *rf, *wf ;  rf = fopen("IN90.DAT", "r") ;  wf = fopen("OUT90.DAT", "w") ;  while(i<5)  {    fgets(str,80,rf);    fgets(substr,10,rf);    len=strlen(substr)-1;    ch=substr[len];    if(ch=='\n'||ch==0x1a) substr[len]=0;    substr[2]=0;     n=findStr(str,substr);    fprintf(wf,"%d\n",n);    i++;    }  fclose(rf);  fclose(wf);  }

原创粉丝点击