两种方式实现:


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;
}


点赞(14)
 

0.0分

89 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 51 条评论

1021王俊峰 3年前 回复TA
@1021王俊峰 空格就不行了啊啊啊
1021王俊峰 3年前 回复TA
#include<stdio.h>
#include<string.h>
//void test(char*str,int len)
//{
//	int i;
//	for(i=len-1;i>=0;i--)
//	{
//		printf("%c",str[i]);
//	}
//}

     int main()
     {
     	char str[100];
     	scanf("%s",str);
     	int len =strlen(str);
        //test(str,len);
        int i;
        for(i=len-1;i>=0;i--)
        {
        	printf("%c",str[i]);
		}
	 }
llc 3年前 回复TA
#include<stdio.h>
void test(char* str,int sz)
{
	int i = 0;
	for (i = sz - 1; i >= 0; i--)
	{
		printf("%c", str[i]);
	}
}
int main()
{
	char arr[100];
	int count = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	scanf("%[^\n]", arr);
	while (arr[count] != '\0')
	{
		count++;
	}
	test(arr, count); 
	return 0;
}
轻舟 3年前 回复TA
#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;
}
格式错误,求解
吉子 3年前 回复TA
@Eliauk scanf函数遇到空格,回车,跳格键相当于结束一个数据的输入
吉子 3年前 回复TA
@xn 看别人的,我知道了,for 里面的循环应该是i=x-1
吉子 3年前 回复TA
@xn 同样疑惑>_<
xn 3年前 回复TA
#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;
}
大佬们为啥不对
Eliauk 3年前 回复TA
求解呀
#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;
}
lean 3年前 回复TA
@HT str返回的是长度,不是你的字符串最后一个下标,第N位没有赋值当然输出0啦,然后gets()读完加的是&#039;&#039;