首页
社区
课程
招聘
[求助]关于字符串排序的问题
发表于: 2010-8-9 18:08 4964

[求助]关于字符串排序的问题

2010-8-9 18:08
4964
对于一个无法预知的多行不等长的字符串(在一个连续的内存空间里,而且没有NULL),怎么能按ASCII排序然后输出?我想过用指针,但由于行数(可通过查找"\r\n"得到,但无法预知,预先分配指针数组)和长度无法预知,不知道怎么搞才行!
如:"afdafd\r\nbsreerg\r\nhretrytr\r\nttrtrh\r\n"

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
额,我做课程设计的时候遇到过这个问题,我当时的做法是先malloc指定大小的内存,一旦发现不够用就用realloc再追加一块。
不知有没有更简单的方法。
2010-8-9 19:19
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存映射,一次申请10M或更多。
行结束是win 是 "\r\n"; linux 是 '\n',如果按行排序,可建指针数组,qsort 函数就行。
2010-8-9 19:32
0
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的两位能不能说得具体一点?
如上面的:"afdafd\r\nbsreerg\r\nhretrytr\r\nttrtrh\r\n" 该怎么处理?
2010-8-9 20:17
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
结构无非就是动态数组,元素按行读取。看你用啥语言,c的话辛苦点,如2、3楼所说自己来实现下数据结构的管理。c++直接来vector<string>。3p之类的dp语言更好办,五行代码就搞定。
2010-8-10 00:24
0
雪    币: 326
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
1、想办法把它分开。
2、写一个strLen 和 strCpy(分隔符不是NULL,是“\r\n”了)。
3、这个字符串,不就是像是"afdafd\0bsreerg\0hretrytr\0ttrtrh\0"

和正常的字符串数组差不多了吧。还不就搞定了
2010-8-10 09:04
0
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个方法我也试过,但它有两千多行,最大的元素有陆百多,搞得要搞一个全局的二维数组,用的冒泡法,编译出来的程序大的很!
2010-8-10 11:49
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是按行排序,还是所有行综合在一起排序?
2010-8-10 12:28
0
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
就是排序前:
abcde
htrehehtr
gergre
排序后:
abcde
gergre
htrehehtr
2010-8-10 14:32
0
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
现在我通过查找"\n"来确定行数和最大行的大小,然后申请内存处理,但用std::sort函数的时候,总是出错,不知道怎么搞的(VC6.0环境下,老提示void * sizeunknow什么的,好像是CMP函数的问题)!
大家觉得多个字符串排序用什么函数好?
2010-8-11 20:04
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这么长时间了还没搞定啊,自己实现一个类似trie树的结构不就可以了,有些浪费空间而已,不过你这个数据量不大,无所谓。
2010-8-11 23:25
0
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
搞定是搞定了,只不过用qsort函数感觉有点慢,而sort函数又老是提示出错而已!
2010-8-12 14:57
0
游客
登录 | 注册 方可回帖
返回
//