#include<stdio.h>
int main()
{
char ch[80];
char a=getchar();
int i=0;
while(a!='\n')
{
ch[i]=a;
a=getchar;
}
char temp;
printf("%d",i+1);
char *star=ch,*end=ch+i;
while(star!=end)
{
temp=*star;
*star=*end;
*end=temp;
star++;
end--;
}
int b=i+1;
for(i=0;i<b;i++)
{
printf("%c",ch[i]);
}
return 0;
}
第一个while循环你没有改变i的值呀,加个i++
#include <stdio.h>
#include <string.h>
#define N 256
void swap(char *a, char *b)
{
char t = *a;
*a = *b;
*b = t;
}
void reverse(char *s)
{
int n = strlen(s);
char *p = s;
char *q = s + n - 1;
while (p < q)
swap(p++, q--);
}
int main()
{
char a[N];
fgets(a, N, stdin);
reverse(a);
printf("%s", a);
return 0;
}