用指针和数组两种方法实现如下功能:将一个字符串按逆序存放。

要求:(1)主函数中完成输入和输出字符串。(2)逆序存放功能用子函数完成。... 要求:(1)主函数中完成输入和输出字符串。
(2)逆序存放功能用子函数完成。
展开
 我来答
自我编程
推荐于2018-02-27 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

#include <stdio.h>
#include <string.h>
void dz(char *str);
int main()
{

    char str[100];
    printf("输入一个字符串:");
    scanf("%s",str);
    dz(str);
    printf("倒置后的字符串:%s\n",str);
    return 0;
}
void dz(char *str)
{
    int len;
    char *p0,*p1,c;
    len=strlen(str);
    p0=&str[0];
    p1=&str[len-1];
    while(1)
    {
        c=*p1;
        *p1=*p0;
        *p0=c;
        p0++;p1--;
        if(p1<=p0)
            break;
    }
}
百度网友d585d01
推荐于2016-03-28 · TA获得超过670个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:472万
展开全部
#include<stdio.h>
#include<string.h>
char* inv1(char*s)
{
int i,n;
char ch;
n=(int)strlen(s);
for(i=0;i<=n/2;i++)
{
ch=s[i];
s[i]=s[n-1-i];
s[n-1-i]=ch;
}
return s;
}
char *inv2(char*s)
{
char *p1,*p2;
char ch;
p1=s;
p2=s+strlen(s)-1;
while(p1<p2)
{
ch=*p1;
*p1=*p2;
*p2=ch;
p1++;
p2--;
}
return s;
}
int main()
{
char str[]="hello!";
printf("原始字符串为%s\n",str);
printf("数组逆序后字符串为:\n");
puts(inv1(str));
printf("指针逆序后字符串为:\n");
puts(inv2(str));//两次逆序和原来一样
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2871万
展开全部
#include <stdio.h>
#include <string.h>

char* fun1(char*s)
{
    int i,n;
    char ch;
    n=(int)strlen(s);
    for(i=0;i<=n/2;i++)
    {
        ch=s[i];
        s[i]=s[n-1-i];
        s[n-1-i]=ch;
    }
    return s;
}
char *fun2(char*s)
{
    char *p1,*p2;
    char ch;
    p1=s;
    p2=s+strlen(s)-1;
    while(p1<p2)
    {
        ch=*p1;
        *p1=*p2;
        *p2=ch;
        p1++;
        p2--;
    }
    return s;
}
int main()
{
    char str[]="1234567890";
char buf[]="abcdefgh";
    printf("原始字符串为%s\n",str);
    printf("数组逆序后字符串为:\n");
    puts(fun1(str));
printf("原始字符串为%s\n",buf);
    printf("指针逆序后字符串为:\n");
    puts(fun2(buf));//两次逆序和原来一样
    return 0;
}

原始字符串为1234567890
数组逆序后字符串为:
0987564321
原始字符串为abcdefgh
指针逆序后字符串为:
hgfedcba
Press any key to continue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式