Dev C++运行gets输入字符串的首元素自动赋值为'\0'吗?
自己写了一个BF算法的简单实现,输入是字符串adbcade和ade,用VC++6.0运行输出结果为 第5位开始相同,而用Dev C++运行却没有任何输出结果。debug时发现就没有进入到while循环中,a就是'\0',但我明明已经给字符串a赋值了呀!
哪位大神知道这是怎么回事?
#include<stdio.h>
#include<string.h>
int main()
{
char a;
char b;
gets(a);
gets(b);
int i=0;
int j=0;
while( a != '\0' )
{
if(b==a)
{
i++;
j++;
if(j==strlen(b))
printf("第%d位开始相同\n",i-j+1);
}
else
{
i++;
j=0;
}
}
return 0;
} 不会自动赋值为'\0',gets()会在字符串最后加上'\0',所以你要输入ade的话,这个b数组的大小不该是3,最小该是b
{:10_333:}
页:
[1]