两种方式实现:


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

leon233 1年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
    int i;
    char str[100];
    gets(str);
    for (i = strlen(str) - 1; i >= 0; i--)
    {
        printf("%c", str[i]);
    }
    return 0;
}
紫薯烤地瓜 1年前 回复TA
#include<stdio.h>
//递归大法好
void convert(char str[100]){
    if(*str=='\0')return;
    else convert(str+1);
     printf("%c",*str);
}
int main()
{
    char str[100];
    gets(str);
    convert(str);
    return 0;
}
循环后在循环 1年前 回复TA
/*
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
*/
#include <stdio.h>
#include <string.h>
main()
{
	char str[100],*p,*q,t;
	gets(str);
	p=str;
	q=str+strlen(str)-1;
	while(p<q)
	{	
		t=*p;
		*p=*q;
		*q=t;
		p++;
		q--;
	}
	printf("%s\n",str);
}
Jeopardize 2年前 回复TA
@Jeopardize 已经解决
Jeopardize 2年前 回复TA
@Jeopardize 以及解决
Jeopardize 2年前 回复TA
#include<stdio.h>
#include<string.h>
#define SIZE 100
int main()
{
    char a[SIZE];
    int len;
    gets(a);
    
    for(len=strlen(a)-1;len>=-1;len--)
    printf("%c",a[len]);
    
    return 0;
    
}
为啥我这输出有个问号?
追梦人 2年前 回复TA
#include<stdio.h>
int main()
{
	char a[100],*p;
	gets(a);
	int b=0;
	p=a;
	while(*p!='\0')
	{
		b++;
		p++;
	}
	for(int j=b-1;j>=0;j--)
	printf("%c",a[j]);
}
walden 2年前 回复TA
@轻舟 i=len即可不用再-1
KO 2年前 回复TA
@Eliauk 用gets_s(str)输入就好了
1021王俊峰 3年前 回复TA
#include<stdio.h>
    int main()
{
char str[100];
     	scanf("%[^\n]",str);
     	int len =strlen(str);
        int i;
        for(i=len-1;i>=0;i--)
        {
        	printf("%c",str[i]);
		}
return 0;
}