如有报错,是本人学艺不精献丑了,给大家当个反面教材
1.此处定义原数组为s,再定义另一数组为p用于倒序(此处只用了长度为10的数组,视具体情况而定)
2.倒序时从两个数组第一个元素下标和最后一个元素下标开始进行对换(可理解为甲乙工程队同时施工,以相同的速度修等长的路,途中经过彼此)
3.将p前的零全部挪到后方,用for循环,设定条件为第一个元素不为零即可
4.输出检查
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char p[10];
char s[10];
int i,j,max,a;
//初始化
for(i=0;i<10;i++){
p[i]=0;
s[i]=0;
}
printf("请输入一个字符串");
scanf("%s",s);
//将字符串倒序写入数组p
for(max=9,i=0;i<10;i++,max--){
p[i]=s[max];
}
//将所有的'\0'挪到最后
for(i=0;p[0]==0;i++){
for(j=0;j<9;j++){
a=p[j];
p[j]=p[j+1];
p[j+1]=a;
}
}
//存放回原数组
for(i=0;i<10;i++){
s[i]=p[i];
}
printf("\n倒序输出为\n");
printf("%s", s);
system("pause");
return 0;
}
欢迎批评指正