| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1102 人关注过本帖
标题:c和指针的一道题目:
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
反向排列 就 是 反向输出?
看谁能改掉char *p = "xxoo"里面的东西 ? 很想见识一下。

梅尚程荀
马谭杨奚







                                                       
2012-12-01 22:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用有容就大在2012-12-1 22:43:25的发言:

反向排列 就 是 反向输出?
看谁能改掉char *p = "xxoo"里面的东西 ? 很想见识一下。
期待大牛的代码

DO IT YOURSELF !
2012-12-01 22:45
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 18楼 wp231957
怎么有违题意了?题目说的是reverse函数里不能用局部数组,不是说入参不能用数组

总有那身价贱的人给作业贴回复完整的代码
2012-12-01 22:56
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 22楼 wp231957
不会 只能 铜球

梅尚程荀
马谭杨奚







                                                       
2012-12-01 22:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
如果主函数传入字符串数组的话
代码就可以这样写了:
用了3个临时变量
程序代码:
void reverse_string(char* string)
{
    char* p_begin=string;
    while(*string!=NULL)
    {
        *string++;
    }
    *string--;
    char* p_end=string;
    char tmp;
    while(*p_begin!=*p_end)
    {
        tmp=*p_begin;
        *p_begin=*p_end;
        *p_end=tmp;
        *p_begin++;
        *p_end--;
    }
}

 

DO IT YOURSELF !
2012-12-02 07:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
*p_begin++;
*p_end++;
这两句对吗?

总有那身价贱的人给作业贴回复完整的代码
2012-12-02 09:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
一个++  一个-- 有问题吗

DO IT YOURSELF !
2012-12-02 11:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
按照大牛的提示 更正了代码
但是有一点不解,那个传入的字符串的长度如果不是用形参来传入的话(额外增加一个参数)
那出了移动指针空跑一遍字符串,还有别的办法获取吗
程序代码:
#include <stdio.h>

void reverse_string(char* string)
{
    char* p_begin=string;
    while(*string!=NULL)
    {
        string++;
    }
    string--;
    char* p_end=string;
    char tmp;
    while(*p_begin!=*p_end)
    {
        tmp=*p_begin;
        *p_begin=*p_end;
        *p_end=tmp;
        p_begin++;
        p_end--;
    }
}


int main()
{
    char test[]="ABC";
    reverse_string(test);
    printf("%s",test);
    return 0;
} 


DO IT YOURSELF !
2012-12-03 09:50
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
应该没了吧,这个借鉴一下,话说偷这种懒可不太好
程序代码:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int StringLenth(char *chars)
{
    return _msize(chars) / sizeof(char);
}
int main()
{
    int lenth;
    char *a = (char*)malloc(7);
    lenth = StringLenth(a);
    printf("%d\n", lenth);

    strcpy(a, "abc");
    lenth = StringLenth(a);
    printf("%d\n", lenth);
    return 0;
}


[fly]存在即是合理[/fly]
2012-12-03 13:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用azzbcc在2012-12-3 13:11:56的发言:

应该没了吧,这个借鉴一下,话说偷这种懒可不太好#include  
#include  
#include  
int StringLenth(char *chars)
{
    return _msize(chars) / sizeof(char);
}
int main()
{
    int lenth;
    char *a = (char*)malloc(7);
    lenth = StringLenth(a);
    printf("%d\n", lenth);
 
    strcpy(a, "abc");
    lenth = StringLenth(a);
    printf("%d\n", lenth);
    return 0;
}
第2个lenth其实不应该正确  用malloc分配给它7之后 它就是7了 不管里面是有效字符 还是\0

DO IT YOURSELF !
2012-12-03 13:24
快速回复:c和指针的一道题目:
数据加载中...
 
   



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

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