C语言if...else非法匹配,下面程序的匹配错在哪里?

   更新日期:2024.05.22
if(str2[i]!=str1[k+i])
break;//这一句是多余的,去掉就好。
return 0;
else------------>非法匹配
return 1;

int string_in(char *str1,char *str2)
{
int i,k;
k=0;
while(str1[k]!='\0')
{
if(str2[0]==str1[k])break;
k++;
}

i=0;

while(str2[i]!='\0')
{
if(str2[i]!=str1[k+i])
return 0;
i++;
}
return 1;
}

int main()
{
char *str1,*str2;
str1="hello";
str2="ll";
if(string_in(str1,str2))
printf("str2 in str1\n");
else
printf("str2 NOT in str1\n");
return 0;
}

可以试试:
int a;
while(str2[i]!='\0')
if(str2[i]!=str1[k+i])
a=0;
else
a=1;
return a;

对的

  • 18092751832 :C语言if...else非法匹配,下面程序的匹配错在哪里?
    禄影坚2721 :答:if(str2[i]!=str1[k+i])break;//这一句是多余的,去掉就好。return 0;else--->非法匹配 return 1;
  • 18092751832 :c语言if的非法else
    禄影坚2721 :答:肯定非法,好吧,把它连同后面的语句放到15行后16行前
  • 18092751832 :C语音 用F7编译后 一直有错误:没有匹配 if 的非法 else
    禄影坚2721 :答:你的if ( a == b );后面多了一个分号;它把if语句给结束了,导致后面的else没有匹配到相应的if条件。这种错误是教科书级的,刚学习c语言的时候老师就举过这样的例子。
  • 18092751832 :C++为什么总是提示没有if匹配的非法else
    禄影坚2721 :答:if和else没有正确配对,导致这样的错误。还有第二个if else 后面的分号应该去掉,不然就会逻辑错误。
  • 18092751832 :c语言没有匹配 if 的非法 else
    禄影坚2721 :答:printf("第一个数%f和第二个数%f的和是%f\n", a, b, c);printf("是否返回?[1.返回/2.退出]");scanf(" %d",&xz);if (xz == 1)//这里的分号去掉{main();//对main的调用是允许的 不过一般不建议这样做}else if (xz == 2){exit(0);//exit函数需要参数}}见注释 供参考 ...
  • 18092751832 :error C2181: 没有匹配 if 的非法 else C语言编程问题!!
    禄影坚2721 :答:但是我建议还是要加上{} 这样就会避免出现error C2181这样的错误 你这个错误是在第一个else if时出现的 因为你的代码有两句 而你没有加上{}导致了编译器认为continue语句是不属于else if语句块的 scanf函数我用vc6测试了下没有问题 头文件已经正确包含了 include<stdio.h> int main(){ float n=...
  • 18092751832 :没有匹配IF的非法ELSE,求解答,在线等。
    禄影坚2721 :答:第一个程序中语句1中嵌套的嵌套的if..else下面有多个语句,需要用括号括起来。修改如下:include <stdio.h> include <math.h> int main(){ double a,b,c,p,x1,x2;scanf("%lf%lf%lf",&a,&b,&c);p=sqrt(b*b-4*a*c);if (p>=0){if (p=0){x1=x2=((-b)/2)/a;printf("...
  • 18092751832 :c语言:illegal else without matching if
    禄影坚2721 :答:illegal else without matching if 意思是你的if 和 else不匹配,一个if配一个else,if(x>=1)y=500;→else if(x>=0)y=0;else y=-500;你去掉y=500;前的 { 和else y=-500;下一行的}就可以了,这个是基本的语法问题,翻译一下错误提示自己多思考,这样才能进步。
  • 18092751832 :这里illegal else without matching if是什么意思
    禄影坚2721 :答:没有相匹配的if,所以else是非法的。你的if语句在第一个分号之后就结束了,无法和后面的else匹配的,a=-a;这个分后已经结束了if语句。
  • 18092751832 :C++为什么总是提示没有if匹配的非法else
    禄影坚2721 :答:在每个else if 后面的语句需要用花括号{ }括起来,不然系统认为就是没有对应的if语句了。如果if语句后面只有一条语句,花括号是可以省略。如果不止一条,就必须用括号括起来。用法如下:if(){ } else if(){ ...}
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网