| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 355 人关注过本帖
标题:都不好意思了,还请教各位大侠,这个如何做?
只看楼主 加入收藏
abc3140163
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
都不好意思了,还请教各位大侠,这个如何做?
//8-6   在一定长度输入字符串,然后以逆序输出。

#include<string.h>
#include<stdio.h>
# define N 50
void main()
{
    char s[N],*p=s;
    void rev(char *);
    printf("input a string:\n");
    gets(p);
    rev(p);
    printf("the reverse of strng is:\n%s\n",s);
}

void rev(char *sp)
{
    int c,k;
    char *cp;
    k=strlen(sp);  //(     1  )
    for (cp=sp+k-1;*sp!='\0';sp++,cp--)      //cp=sp+k-1;(    2     );sp++,cp--)
    {
        
        //(     3     )
        //(     4     )
        //(     5     )
    }
}

[ 本帖最后由 abc3140163 于 2013-4-5 19:46 编辑 ]
搜索更多相关主题的帖子: include 字符串 如何 
2013-04-05 19:43
abc3140163
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-4
收藏
得分:0 
这是我做的。
//8-6   在一定长度输入字符串,然后以反输出。

///*
#include<string.h>
#include<stdio.h>
# define N 50
void main()
{
    char s[N],*p=s;
    void rev(char *);
    printf("input a string:\n");
    gets(p);
    rev(p);
    printf("the reverse of strng is:\n%s\n",s);
}

void rev(char *sp)
{
    int c,k;
c=0;
char temp;
    char *cp;
    k=strlen(sp);
    for (cp=sp+k-1;c<k/2;sp++,cp--,c++)
    {
        temp=*sp;
        *sp=*cp;
        *cp=temp;
        
    }
}

//我怎么做也需要用更个临时变量。

[ 本帖最后由 abc3140163 于 2013-4-5 19:46 编辑 ]
2013-04-05 19:45
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:6 
可以这样啊 把c用作中间变量 牵强的话 估计考的是类型转换
终止条件可以用cp>sp来判断 不需要c来计数
向下面这样
程序代码:
void rev(char *sp)
{
    int c,k;
    char *cp;
    k=strlen(sp);  //(     1  )
    for (cp=sp+k-1;cp>sp;sp++,cp--)      //cp=sp+k-1;(    2     );sp++,cp--)
    {
        
        c = *sp;//(     3     )
        *sp = *cp;//(     4     )
        *cp = (char)c;//(     5     )
    }
}

人生是一场错过 愿你别蹉跎
2013-04-05 20:16
旺旺佳佳
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2013-3-11
收藏
得分:4 
#include<string.h>
#include<stdio.h>
# define N 50
void main()
{
    char s[N],*p=s;
    void rev(char *);
    printf("input a string:\n");
    gets(p);
    rev(p);
    printf("the reverse of strng is:\n%s\n",s);
}

void rev(char *sp)
{
   
    int c,k;
    char *cp;
    k=strlen(sp);  //(     1  )
    for (cp=sp+k-1;cp!=sp;sp++,cp--)      //cp=sp+k-1;(    2     );sp++,cp--)
    {
        
       sp[N-1]=*cp; //(     3     )
        *cp=*sp;
        //(     4     )
        *sp=sp[N-1];//(     5     )
    }
}//////我没有加变量,但需要输入的字符数少于49个,
2013-04-05 20:34
快速回复:都不好意思了,还请教各位大侠,这个如何做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016399 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved