万能的们 帮忙改错下这题

C语言 码拜 9年前 (2016-04-07) 869次浏览
#include  <conio.h>
#include  <stdio.h>
#include  <string.h>
int fun(char *s, char *t)
{
int n;   char *p, *r;
n = 0;
while(*s)
{
p = s;   r = t;
while(*r)
if(*r == *p)
{
r++;
p++
}
else
break;
if(r == “\0”)
n++;
s++;
}
return  n;
}
main( )
{
char s[100], t[100];   int m;
clrscr( );
printf(“\nPlease enter string S:” );
scanf(“%s”, s);
printf(“\nPlease enter substring t:”);
scanf(“%s”, t);
m = fun(s, t);
printf(“\nThe result is : m = %d\n”, m);
}
解决方案

198

if (r == “\0”)应该是if (*r == “\0”)
你这个仅仅只是统计子串的个数,而不是位置对吧?

#include  <conio.h>
#include  <stdio.h>
#include  <string.h>
int fun(char *s, char *t)
{
	int n;   char *p, *r;
	n = 0;
	while (*s)
	{
		p = s;   r = t;
		while (*r)
		if (*r == *p)
		{
			r++;
			p++;
		}
		else
			break;
		if (*r == "\0")
			n++;
		s++;
	}
	return  n;
}
void main()
{
	char s[100], t[100];   int m;
	//clrscr();
	printf("\nPlease enter string S:");
	scanf("%s", s);
	printf("\nPlease enter substring t:");
	scanf("%s", t);
	m = fun(s, t);
	printf("\nThe result is : m = %d\n", m);
}

单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明万能的们 帮忙改错下这题
喜欢 (0)
[1034331897@qq.com]
分享 (0)