两种方式实现:


1) 用scanf输入存放到一个字符数组,然后逆序拷贝到另一个字符数组,然后输出

#include <stdio.h>
#include <string.h>

int main(void)
{
    char strinput[100];
    scanf("%[^\n]", strinput); //除了换行符以外的字符全部接收

    char stroutput[100];
    int i = 0;
    int j = 0;
    int len = strlen(strinput);
    //逆序拷贝
    for (i = len - 1; i >= 0; i--)
    {
        stroutput[j++] = strinput[i];
    }
    stroutput[j] = '\0';

    printf("%s\n", stroutput);

    return 0;
}

2) 用getchar接收一个个字符存放在数组中,然后逆序putchar输出

#include <stdio.h>
#include <string.h>

int main(void)
{
    char c;
    char output[100];
    int index = 0;

    int i = 0;
    while ((c = getchar()) != EOF && c != '\n' && i <= 100)
    {
        output[index++] = c;
        i++;
    }
    //output[index] = '\0';

    for (i = index - 1; i >= 0; i--)
    {
        putchar(output[i]);
    }
    //putchar('\n');

    return 0;
}


 

0.0分

135 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include<stdio.h>
#include<string.h>
int main()
{
    char str[101];
    fgets(str,100,stdin);
    int len=strlen(str);
    int i;
    for(i=len-1;i>=0;i--)
    printf("%c",str[i]);
    printf("\n");
    return 0;
}
格式错误,求解
2022-01-02 15:11:11
#include <string.h>
#include<stdio.h>
int main()
{
	char a[100];
	int x, i;
	gets(a);
	x = strlen(a);
	for (i = x; i >= 0; i--)
	{
		printf("%c", a[i]);
	}
	return 0;
}
大佬们为啥不对
2021-12-14 21:19:21
求解呀
#include<stdio.h>

#include<string.h>
int main()
{
 char str[100];
 scanf("%s",str);

int n = strlen(str);
for( int i= n-1;i>=0;i--){
    printf("\c",str);
}
	return 0;
}
2021-10-31 15:51:19
第一个代码,感觉画蛇添足了
#include <stdio.h>
#include <string.h>
int main()
{
    char input[101];
    scanf("%[^\n]",input);
    int num=strlen(input);
    for(int i=num-1;i>=0;i--)
    {
        printf("%c",input[i]);
    }
    return 0;
}
2021-04-04 21:01:09
#include<stdio.h>
#include<string.h>
int main()
{ char a[100];
 int b,i;
 for(i=0;i<100;i++)
 { scanf("%c",&a[i]);
  if(a[i]=='\n') break;
 }
 b=strlen(a);
 i=b-2;
 for(;i>=0;i--)
 printf("%c",a[i]);
return 0;
 } 
在编译器都对,为什么显示答案错误,大佬,求解,谢谢
2021-03-20 20:10:22
大佬们,这个为什么不对呀,求解

#include<stdio.h>
int main()
{
    char str[100];
    int i=0,k;
    while(1)
    {
    	scanf("%c",&str[i]);
    	if(str[i]==10) break;
    	i++;
	}
	str[i]='\0';
	k=i-1;
	for(i=0;i<=k;i++)
	{
		printf("%c",str[k-i]);
	}
	return 0;
}
2021-03-07 15:07:40
求大佬解释一下这个为什么不对,是落了哪种情况吗
#include<stdio.h>
int main (void)
{
	char s[90];
	int i=0,j;
	while((s[i]=getchar())!='\n')
	i++;
	s[i]='\0';
	for(j=i-1;j>=0;j--) printf("%c",s[j]);
	return 0;
}
2021-03-05 10:24:05
#include <stdio.h>
#include <string.h>
#define CH 100
int main()
{
	int i,n;
	char str[CH];
    gets(str);
	n = strlen(str);
	for(i=n;i>=0;i--)
	    printf("%c",str[i]);
	return 0;
}
为什么运行结果第一个字符是空格?
2021-03-04 21:44:13