帮看一个程序,在wintc下修改的,一直不能成功,求看一下

/*设计一个函数:voidfind1(chararray[],charsearch,char*pi)要求:这个函数参数中的数组array是以0值为结束的字符串,要求在字符... /* 设计一个函数: void find1(char array[], char search, char * pi)要求:这个函数参数中的数组array是以0值为结束的字符串, 要求在字符串array中查找字符是参数search里的字符。 如果找到,函数通过第三个参数(pa)返回值为 array字符串中第一个找到的字符的地址? */
void find1(char array[], char search, int **ppa)
{ int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{ *ppa=array+i;
break; }
else if (*(array+i)==0)
{ *ppa=0;
break; }
}
}
void main()
{ char str[]={"afsdfsdfdf\0"};
char a="d";
int *p="0";
find1(str,a,&p); /*/pa=p*/
if (0==p )
{
printf ("cannot find\n");
}
else
{ printf("find that p=%d",p); }
printf("a=%d,%d",str+9,str);
getch();
}
展开
 我来答
jyyyjy
2012-12-17 · 超过17用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:50.4万
展开全部
void find1(char array[], char search, int **ppa)
{ int i;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{ *ppa=array+i;
break; }
else if (*(array+i)==0) 问题在这里,这里根本不会执行到,因为for循环条件已经不满足啦

{ *ppa=0;
break; }
}
}

修改后的结果
void find1(char array[], char search, int **ppa)
{ int i;
*ppa=0;
for (i=0;*(array+i)!=0;i++)
{
if (*(array+i)==search)
{ *ppa=array+i; 找到就返回,找不到就返回0的

break; }

}
断的刃
2012-12-18 · TA获得超过287个赞
知道小有建树答主
回答量:493
采纳率:71%
帮助的人:131万
展开全部
*(array+i)!=0?这是什么?数组名字+数字的结果不为0?你是想这样吧:array[i]!="0"
char array[],这只是个字符数组,不是指针数组,且指针数组也不能*(array+i)!=0这样用啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式