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

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

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

#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;
}

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-10

简单的使用一个指针

将指针指向字符串某尾

然后将指针向前移动

一直移动到数组头部

这样则形成了倒序输出


下面是一个简单的代码

#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;
}

本回答被提问者和网友采纳
相似回答