33,311
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
void main()
{
char a[20],*p,*q,t;
int i,m,n;
printf("输入n的值\n");
scanf("%d",&n);
// 上面输入数字之后后面的空格或回车键还停留在输入缓冲区,
// 它会作为下面输入字符的第一个字符,要跳过这个回车,加上
getchar(); // 紧跟n后面的一个字符(回车或空格什么, 注意只有一个,)
// 所以输入整数后输入太多空格或回车还是会有问题
printf("输入字符串\n");
for(i=0;i<n;i++)
scanf("%c",&a[i]);
printf("\n");
// 你这个是没有结束符的字符串,建议加上,n不要越界
a[n] = '\0';
p=a;
q=a+n - 1; // n个字符最后一个是加上n-1
for ( ; p < q; p++, q--) { // 这么写简练多了
t = *p;
*p = *q;
*q = t;
}
// 有结束符的字符串这样子输出
printf("%s\n", a);
}