当前位置: 代码迷 >> C语言 >> [求助][原创]这个程序要怎么改?
  详细解决方案

[求助][原创]这个程序要怎么改?

热度:171   发布时间:2005-09-12 17:47:00.0
[求助][原创]这个程序要怎么改?

程序如下: #include <stdio.h> #include <string.h> #include <conio.h> int findStr(char *str,char *substr) { int n=0; char *p,*r; while(*p) { p=str;

r=substr;

while(*r)

if(*r==*P){r++;p++;}

else break; if(*r=='\0') n++; str++; } return n; } main() { char str[81], substr[3]; int n; clrscr() printf("请输入原字符串:"); gets(str); printf("请输入子字符串:"); gets(substr); puts(str); puts(substr); n=findStr(str,substr); printf("n=%d\n",n); }

问题是:如果我输入的原字符串是asd asasdfg asd as zx67 as mklo 输入的子字符串是as 为什么我电脑上输出的结果是0?


----------------解决方案--------------------------------------------------------

int findStr(const char *str,const char *substr) { int n=0; char *p,*r; p = str; while(*p) { r=substr; while(*r&&*p) if(*r==*p){r++;p++;}

else break; if(*r=='\0') { n++; continue;} if(*r != *substr) continue; p++; } return n; }

[此贴子已经被作者于2005-9-13 11:44:21编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案