字符指针数组赋值

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:48:55
如何把一段英文文本(文本里面每个单词间隔一个空格)的每个单词地址赋值给字符指针?
没有其他方法了吗?
我的文本很大,10000个单词,每个单词最长200,,
这样子开辟个字符数组的话太浪费空间了。。。

具体实现功能是:从英文文本里面 随机给出 一个单词对,
然后找出它的后继单词(单词对可能重复出现,所以有多个后继单词)。文本自己给出。

1.问题中所谓“每个单词地址”,其实指的是这个单词在文件中的位置。那么直接用unsigned word[10000]来保存就可以。

2. 要实现问题中所说的功能,最简单的方法当然是在初始化时扫描整个文本,并将文件中的单词都装载入内存中。使用char[10000][200]可保存整个文本,但较浪费内存,zubyzuby的动态内存分配方法,可以减少内存的浪费,因为大部分单词都远小于200个字符。

如果仍然想减少内存的使用,则可以仅用unsigned word[10000]保存每个单词在文件中的位置,每次比较时直接从文件中读取。当然,这样查找的速度会变慢。

3.要进一步提高查找速度,可通过Hash的方式。

先声明一个字符数组的数组,如:char sz[100][20];
这样你就可以放100个字符串,每个字符串的大小最多为20.
然后读取出来放到这里面去,
然后每一个sz[i]就是你要的指针。

用字符串数组:
char *sz[10000];/*一万个单词,每个单词动态分配内存*/

能具体说下实现的功能么,每个单词地址赋值给字符指针?也许你说出来实现功能会有更好的解决办法,有时候问题要整体考虑

计算机是按照8位一个地址来计算的,也就是1个字节分配一个地址.所以要想每个单词分配一个地址是不可能的.