编程题,输入一个字符串,编程实现对该字符串的逆转输出。(如!输入“abcdefg",输出为“gfe

编程题,输入一个字符串,编程实现对该字符串的逆转输出。(如!输入“abcdefg",输出为“gfedcba”)... 编程题,输入一个字符串,编程实现对该字符串的逆转输出。(如!输入“abcdefg",输出为“gfedcba”) 展开
 我来答
enjoy冰心玉壶
推荐于2018-03-07 · TA获得超过798个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:101万
展开全部

先把源程序复制一下吧,可以实现逆序输出。

#include<stdio.h>
#include<string.h>

int main()
{
char str[100];
int len;
int i;
printf("please input string:\n");
scanf("%s",str);
len=strlen(str);
printf("result is:\n");
for(i=len;i>=0;i--)
{
printf("%c",str[i]);

}
printf("\n");
return 0;
}

运行结果如下,可以自己跑一下程序,就看到结果了。

阿尔迈凡
2016-01-10 · TA获得超过8460个赞
知道大有可为答主
回答量:5744
采纳率:14%
帮助的人:2034万
展开全部

简单的使用一个指针

将指针指向字符串某尾

然后将指针向前移动

一直移动到数组头部

这样则形成了倒序输出


下面是一个简单的代码

#include <stdio.h>
#include <string.h>

int main(int argc,char **argv)
{
    char s[20];
    char *p;

    scanf("%s",s);
    p=s+strlen(s);
    
    while(p >= s)
    {
        putchar(*p);
        --p;
    }

    return 0;
}

如果需要将数组倒置则可以使用两个指针

下面是一个示例代码

#include <stdio.h>
#include <string.h>

int main(int argc,char **argv)
{
    char s[20];
    char *p1,*p2;
    char t;
    int i;

    scanf("%s",s);
    p1=s;
    p2=s+strlen(s)-1;

    while(p2 > p1)
    {
        t=*p1;
        *p1=*p2;
        *p2=t;

        ++p1;
        --p2;
    }

    for(i=0;s[i];++i)
        putchar(s[i]);
    
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式