两种方式实现:


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 条评论

CR7 4年前 回复TA
@zamon 我试了下,比如输入hello,字符长度五,但是最后j通过累加会得到六,输入应该是字符串结束,在时间算法上节省了很多。
梨涡是胖的呀 4年前 回复TA
@不打代码不开心 因为scanf碰到空格tab就停止接受了
D164805414 5年前 回复TA
@汤雨鑫 可能没有安装这个库
不打代码不开心 5年前 回复TA
求大佬解释一下为什么错了#include<stdio.h>
int main()
{
	char str[101],s;
	int i=0;
	scanf("%c",&s) ;
	while(s!='\n') 
	{
		str[i] = s;
		i++;
		scanf("%c",&s) ;
	}
	i = i-1;
	while(i>=1)
	{
		printf("%c",str[i]);
		i--;
	}
	printf("%c",str[i]);
	return 0;
}
yasser 5年前 回复TA
学习了,
xiaohouge 5年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	gets(str);
	puts(strrev(str));
	return 0;
}
直接用倒转字符串strrev()为什么编译错误。。。。
逻辑幻象 5年前 回复TA
#include<stdio.h>
#include<string.h>
int main(){
	char a[100];
	gets(a);
	int l,i;
	l=strlen(a);
	for(i=l-1;i>=0;i--){
		printf("%c",a[i]);
	}
	return 0;
}
我这个简单点
汤雨鑫 6年前 回复TA
能问一下我的   #include <string.h>   不能编译通过怎么办?   谢谢
Cauchy 6年前 回复TA
@zamon %s意思是以字符串格式输出 因此需要加字符串结束标志符'\0'
落叶的乔木 6年前 回复TA
字符串以'\0'或者0结尾的 内存本质上为0 ascii码的0和内存的0不一样 详细看任何一本c语言书的字符串讲解