求助。。。简单的函数顺序问题
#include <stdio.h>#include <string.h>
char *fan(char *arr)
{
char *p=arr; /*p指向数组*/
char *t;
while(*p!='\0') /*数组没有到结束就循环*/
{
p++; /*指针后移*/
if(*p=='b') /*当指针指向的值是#*/
{
t=p; /*t指向数组*/
while(*t!='\0') /*数组没有到结束就循环*/
{
*t=*(t+1); /*数组前移一位*/
t++; /*指针后移*/
}
p--; /*指针前移,重新检查该位置值*/
}
}
return arr;
}
void main()
{
char s[]="afbwbbbdsbvbwfsdfbwqbb";
char *p;
p=s;
printf("%s\n",p);
printf("%d\n",fun(p));
printf("%s\n",fan(p));
}
int fun(char *p)
{
int n=0;
char *t=p;
while(*t!='\0')
{
if(*t=='b')
{ n+=1;
t++;
}
else
t++;
}
return n;
}
这样就是对的。。可是为什么??下面那样就报错??应该没有顺序问题吧?
#include <stdio.h>
#include <string.h>
void main()
{
char s[]="afbwbbbdsbvbwfsdfbwqbb";
char *p;
p=s;
printf("%s\n",p);
printf("%d\n",fun(p));
printf("%s\n",fan(p));
}
int fun(char *p)
{
int n=0;
char *t=p;
while(*t!='\0')
{
if(*t=='b')
{ n+=1;
t++;
}
else
t++;
}
return n;
}
char *fan(char *arr)
{
char *p=arr; /*p指向数组*/
char *t;
while(*p!='\0') /*数组没有到结束就循环*/
{
p++; /*指针后移*/
if(*p=='b') /*当指针指向的值是#*/
{
t=p; /*t指向数组*/
while(*t!='\0') /*数组没有到结束就循环*/
{
*t=*(t+1); /*数组前移一位*/
t++; /*指针后移*/
}
p--; /*指针前移,重新检查该位置值*/
}
}
return arr;
}
[ 本帖最后由 xiaoseqingch 于 2012-7-21 10:39 编辑 ]