#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[100];
char *p=a;
gets(p);
int len =strlen(p);
char *s=p+len-1;
while(p<s)
{
char t;
t=*p;
*p=*s;
*s=t;
s--;
p++;
}
printf("%s",p);
}
最后打印把p改为a就可以了,p指向的不是字符串开头
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[100];
char* p = a;
gets_s(a);
int len = strlen(p);
char* n = p + len - 1;
char* s=(char *)malloc(sizeof(char)*len);
int i = 0;
while (i<len)
{
char t;
t = *n;
s[i] = t;
n--;
i++;
}
s[i] = '\0';
printf("%s", s);
}