正如标题所说,我必须使用指针构建一个趋势函数。函数将检查第二个字符串是否出现在第一个字符串的末尾,如果它返回1则返回1,否则返回0 。这里是我的代码,它不是编译的,它在赋值错误中给出了一个非左值。任何想法?使用指针构建趋势函数
#include <stdio.h>
#define MAX 100
int strend (char *s1,char *s2);
int main()
{
char string1[MAX]="Check Mate";
char string2[MAX]="Mate";
printf("The Result is :\n");
printf("%d",strend(string1,string2));
return 0;
}
int strend (char *s1,char *s2)
{
for(;*s1!='\0';s1++)
{ for(;*s2!='\0' && *s1!='\0' && *s1==*s2;s1++,s2++)
;
}
if(*s1='\0' && *s2='\0')
return 1;
else
return 0;
}
大声笑,感谢队友......我从来没有想过关于特定错误:P,我甚至有另一个错误里面放的1输出,即使第二个字符串是在第一个发现的(即使它最终没有结束)。 – Lind 2013-03-10 21:42:49
虽然代码不正确,但是错误是由于它试图将0赋给'('\ 0'&& * s2)',即0 = 0;' – teppic 2013-03-10 21:57:45
@teppic - 这是不正确的,这样的代码分配。例如,试试这个简单的例子,你会看到我在说什么:'int a,b;如果(a == 1 && b = 2)'会给你一个错误,但是如果你只有'if(b = 2)',编译器不会显示错误。 – Tuxdude 2013-03-10 22:02:56