5、输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

5、输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
用C语言编写
输出格式:在一行中输出逆序后的字符串。

举例:

#include<stdio.h>

int main()

{

int i, j, cnt;

char ch, a[80], b[80];

ch=getchar();

for(i=0; ch!='\n'; i++){

a[i]=ch;

cnt++;

ch=getchar();

}

for(i=0, j=cnt-1; i<cnt; i++, j--)

b[j]=a[i];

for(i=0; i<cnt; i++)

printf("%c", b[i]);

return 0;

}

运行:输出格式:

在一行中输出逆序后的字符串。

输入样例:

Hello World!

输出样例:

!dlroW olleH

扩展资料:

return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-23
举例: include int main() { int i,j,cnt;char ch,a[80],b[80];ch=getchar();for(i=0;ch!'\n';i+){ a[i]=ch;cnt+;ch=getchar();} for(i=0,j=cnt-1;i;i+,j-) b[j]=a[i];for(i=0;i;i+) printf("%c",b[i]);return 0;} 运行:输出格式: 在一行中输出逆序后的字符串。输入样例: Hello World!...
第2个回答  2017-02-19
#include "stdio.h"
#include "string.h"
#define MAXLEN 80

int main(void)
{
    char a[MAXLEN];
    fgets(a, MAXLEN, stdin);
    int n = strlen(a);
    int i = n - 1;
    for(; i >= 0; i--)
        printf("%c", a[i]);

    return 0;
}

不懂可以追问。

追问

能写点简单的吧?我看不懂呀

追答#include "string.h"

用来预处理string.h头文件,因为我需要函数strlen()来确定我输入的字符串的长度,这样用for倒序输出的时候才能知道从第几位开始倒序输出。

fgets(a, MAXLEN, stdin);

用来把输入的字符串存放到数组a中,和gets(a)是一样的,只不过如果你不小心输入的位数超过了80位,gets()可能会擦鞋掉原内存中的数据导致程序崩溃,fgets()能保证不管你输入多少个字符,我只要前80个。

int n = strlen(a);

第一条解释过了,这个函数用来求a的长度(但会比实际长度多1)所以后来又定义i = n - 1.

这样解释可以吗?

这样写非常简单呀,一次输入一次输出,如果写三次for循环不是更麻烦嘛

本回答被提问者采纳
第3个回答  2017-02-19
#include<stdio.h>
int main()
{int i,j;
char c,s1[200],s2[100];
gets(s1);
gets(s2);
for(i=0;s1[i];i++);
for(j=0;s1[i++]=s2[j++];);
for(j=0,i-=2;i>j;i--,j++)
{c=s1[i]; s1[i]=s1[j]; s1[j]=c;}
puts(s1);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网