在函数shixian中,指针变量c,p都被改变过,都不是指向原字符串首,所以打印出来的不是完整的字符串,在函数外打印就没错。
在函数shixian中的检测结束条件时有错。
下面的程序改正,且编译调试通过
#include<stdio.h>
void shixian(char *c)
int main()
{
char ch[12]
gets(ch)
shixian(ch)
printf("%s",ch)
return 0
}
void shixian(char *c)
{
char t,*p=c
while(*c!='\0')
{
c++
}
c--
for(c-1>=pc--,p++)
{
t=*c
*c=*p
*p=t
}
//printf("%s",c)
}
看你的程序你是想用冒泡排序的思想实现倒序,程序修改如下:#include <stdio.h>
void sum(char *w)
{
int i,j
char z
for(j=0j<5j++)
{
for(i=0i<6-j-1i++)
{
z=*(w+i)
*(w+i)=*(w+1+i)
*(w+i+1)=z
}
}
puts(w)
}
int main ()
{
char a[7]="abcdef"
char *p=a
sum(p)
}