首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符数组的一个小程序 不知道有关问题出在哪儿了

2013-04-02 
字符数组的一个小程序 不知道问题出在哪儿了#include stdio.h#include string.hint get_location(char

字符数组的一个小程序 不知道问题出在哪儿了
#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)
            flag=i;
    break;
应该吧break也包含在if条件成立的处理中,否则程序有bug,比如char *a="stixingout";
会搜不到"ing"
[解决办法]
写程序的时候尽量把和参数名字定义的清楚点,
要不然很混乱。。。
比如:
char *a="stingout";
char *b="ing";
调用的时候
FLAG=get_location(b,a);
函数定义:int get_location(char *a,char *b)

很混乱





[解决办法]
引用:
引用:
还有函数中那个flag没有初始化,应该初始化为一个无效值(比如 -1)
flag 在下面赋值的 也要先初始化吗? 我感觉只有计数时需要初始化~~求教育
你定义了一个int flag;那这个flag的值现在是个未知数,假如没有进那个条件给他赋值,那最后返回这个未知数你觉得正确吗?

热点排行