两种方式实现:


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

月儿会弯 3年前 回复TA
@不打代码不开心 老是说数组越界了
月儿会弯 3年前 回复TA
@不打代码不开心 @jaylove 但是我刚刚用他的代码也能输出空格 ,而且字符个数包括空格的数量是对的上的 也能输出正确
月儿会弯 3年前 回复TA
@月儿会弯 i可以不用减3 我忘记删除了 不删编译也没问题
月儿会弯 3年前 回复TA
还行吧
#include <stdio.h>
#include <string.h>
#define CH 100
int main()
{
	int i;
	char character[CH];
	scanf("%[^\n]",character);
    //gets(character);
	i = strlen(character);
	character[--i] = character[i]-'\0';
	for(i-3;i>=0;i--)
	printf("%c",character[i]);
	return 0;
}
初夕 3年前 回复TA
#include<stdio.h>
int main()
{
    char a[100],b[100];
    int i=0;
    while((scanf("%c",&a[i]))!=EOF)
    {
        i++;
    }
    for(;i>=0;i--)
    {
        printf("%c",a[i]);
    }
    return 0;
}
为什么不对?
洛阳 4年前 回复TA
@洛阳 #include <string.h>
洛阳 4年前 回复TA
/*将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。*/
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>


int main()
{
	char str[100];
	int i,count;
	scanf("%[^\n]", str);
	count = strlen(str);

	for (i = count-1; i >= 0; i--)
	{
		printf("%c", str[i]);
	}
	return 0;
}

呜哈。
4399 4年前 回复TA
#include <stdio.h>
#include<string.h>
int main()
{
char a[128];
int length;
gets(a);
length=strlen(a);
while(length-->-1)
	printf("%c",a[length]);
}
大佬们这个错在哪,通不过
4年前 回复TA
@xiaohouge 大佬,你现在知道为啥了吗,,,知道解释一哈M,,
4年前 回复TA
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
int main ()
{
	char str[100];
	scanf ("%[^\n]",str);
	printf ("%s",strrev(str));
	return 0;
}
大佬,这个怎么会编译错误的