字符数组的一个小程序 不知道问题出在哪儿了
#include <stdio.h>
#include <string.h>
int get_location(char *a,char *b);
int main(void)
{
char *a="stingout";
char *b="ing";
int FLAG;
FLAG=get_location(b,a);
printf("%d \n",FLAG);
return 0;
}
int get_location(char *a,char *b)
{
int alen=strlen(a);
int blen=strlen(b);
int i;
int flag;
for(i=0;i<(blen-alen);i++)
{
if(b[i]=a[0])
{
if(strncmp(b+i,a,alen)==0)
flag=i;
break;
}
}
return flag;
}
这题要求找出第一个字符数组在第二个数组中第一次出现的位置,上面是我写的但是无法运行,求各路大神教教小弟。最近学到这二感觉书上讲的内容很简单,但是我写起来总会有上面我写的程序这样的问题,不知道前面哪儿没学好。。。 c
[解决办法]
if(b[i]=a[0])
少个等号,另外
if(strncmp(b+i,a,alen)==0)应该吧break也包含在if条件成立的处理中,否则程序有bug,比如char *a="stixingout";
flag=i;
break;