帮看一个程序,在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();
} 展开
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();
} 展开
2个回答
展开全部
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; }
}
{ 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; }
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询