c倒序输出输入的字符串

int getline(char s[]) { //读一个字符,回车后返回除换行符的字符数//
int a;
int b=0;
while ((a = getchar()) !='\n'&&b<10) //最大字符小于10//
{
s[b] = a;
b++;
}
b--;
return b;
}

main() {
char s[10];
char i[10];
int c;
int a;

while ((a = getline(s)) > 0) {                  //除了输入换行符  有输入就执行循环//
    for (c = 0;i[c] = s[a] && a >= 0 ;c++)    //倒序拷贝字符串//
        a--;
i[c] = '\n';
    c++;
i[c] = '\0';
    printf("%s", i);
}    
return 0;

}

输出是 口

感觉犯了很简单的错误,但是不知道问题在哪。

你的字符数组i一开始都没有东西怎么判断

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{  int len,i;
    char a[100];
    gets(a);
    len=strlen(a);
    for(i=len-1;i>=0;i--)
        printf("%c",a[i]);
    return 0;

}

img

i[c] = s[a]是赋值,恒成立,是判断相等吧

for (c = 0;i[c] == s[a] && a >= 0 ;c++) 
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632