| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 490 人关注过本帖, 1 人收藏
标题:字符串问题请教.
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏(1)
已结贴  问题点数:20 回复次数:5 
字符串问题请教.
输入一串只有数字和字母的字符,把字母按原来的顺序排在前段,把数字按原来的顺序排在后段。
书上给了个程序实例,如下:
#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

char  *fun(char *s)
{
    int i, j, k, n;
    char *p, *t;

    n = strlen(s) + 1;
    t = (char *)malloc(n * sizeof(char));
    p = (char *)malloc(n * sizeof(char));
    j = 0; k = 0;
    for (i = 0; i < n; i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')
            t[j++] = s[i];
        else
            p[k++] = s[i];
    }
    for (i = 0; i < k; i++)   t[j + i] = p[i];
    t[j + k] = 0;
    return  t;
}

main()
{
    char  s[80];
    printf("Please input a string:\n");
    scanf("%s", s);
    printf("\n The result is:\n %s\n", fun(s));
}
运行完全正确。我的疑问是 他的明明使用malloc分配了内存,为什么不使用free释放?
是不是此时没释放的必要,或者必须释放而书本没有起到示范和榜样的作用?
搜索更多相关主题的帖子: include 字母 字符串 
2012-01-01 19:56
xuxiong517
Rank: 2
等 级:论坛游民
帖 子:35
专家分:29
注 册:2011-11-1
收藏
得分:5 
什么要释放,我们老师讲了一题在链表时删除一节点要free..
2012-01-01 22:08
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:5 
fun()函数里面可以free掉p,但不能free掉t,因为t被free掉了就不能输出结果了
可以在main函数里这样写:
char *tmp=fun(s);
printf("\n The result is:\n%s\n",tmp);
free(tmp);
2012-01-01 22:21
女孩娱乐
Rank: 2
等 级:论坛游民
帖 子:10
专家分:14
注 册:2012-1-1
收藏
得分:5 
fun()函数里面可以free掉p,但不能free掉t,因为t被free掉了就不能输出结果了
可以在main函数里这样写:
char *tmp=fun(s);
printf("\n The result is:\n%s\n",tmp);
free(tmp);
2012-01-01 22:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
回复 楼主 有容就大
哪本书上教的,malloc完了不释放内存,工作中写出这样的代码会被人笑话的,甚至影响一年的绩效

总有那身价贱的人给作业贴回复完整的代码
2012-01-01 23:33
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 embed_xuel
是在return  t;后补上
    free(t);
    free(p); 吗?

梅尚程荀
马谭杨奚







                                                       
2012-01-02 10:09
快速回复:字符串问题请教.
数据加载中...
 
   



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

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