写一个函数,使输入的一个字符串按反序存放,错在哪里

2024-11-15 10:25:54
推荐回答(1个)
回答(1):

首先要明确j干什么用的,我理解j是取得输入字符串的长度,你的写法是2层循环,这不对吧

没异议的话下面
for(i=0;i这个也有问题,从头到尾都赋值是不对的,这样相当于每个值颠倒后又颠倒回去
所以应该是赋值到一半就OK

char a[100], t;
int i = 0, j = 0;
scanf("%s", a);
printf("a_satrt:%s\n", a);
//j = sizeof(a);
for (j = 0; a[j] != '\0'; j++) { //主要是取得数组长度
printf("j:%d\n", j);
}
for (i = 0; i < (j + 1) / 2; i++) { //循环一半
//printf("%s",a);
t = a[i];
a[i] = a[j - i - 1];
a[j - i - 1] = t;
}
printf("a_end:%s", a);