LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: bywind

c语言字符串处理问题求教!

[复制链接]
发表于 2005-4-17 03:45:18 | 显示全部楼层
本来想写点什么的,结果发现写不出来,不好意思灌水了
回复 支持 反对

使用道具 举报

发表于 2005-4-18 10:13:16 | 显示全部楼层
那就用realloc动态分配,用一个变量记数组的大小,一个变量记已实用元素的个数


  1. int size = 0; /* 数组大小 */
  2. const int step = 10; /* 数组每次增加的大小 */
  3. int num = 0; /* 当前实用的元素个数 */
  4. char **uc = NULL; /* 数组 */
  5. char *tok = ";"; /* 分隔符 */
  6. char *t = NULL;

  7. t = strtok(buf, tok);
  8. while(t){
  9.   if(num >= size - 1){
  10.     size += step;
  11.     uc = (char **)realloc(uc, size * sizeof(*uc));
  12.   }
  13.   uc[num++] = t;
  14.   t = strtok(NULL, tok);
  15. }
复制代码


当然,你也可以每次增加一个元素,代码比这个简单,不过速度就慢一点。
记得在适当的地方free
回复 支持 反对

使用道具 举报

发表于 2005-4-20 09:54:31 | 显示全部楼层
libinary兄好久不见啦!
别来无恙否?
回复 支持 反对

使用道具 举报

发表于 2005-4-20 20:50:05 | 显示全部楼层
呵呵,确实好久没上来了,想不到还挂着个版主,真是惭愧。
回复 支持 反对

使用道具 举报

发表于 2005-4-20 20:59:31 | 显示全部楼层
Post by libinary
呵呵,确实好久没上来了,想不到还挂着个版主,真是惭愧。

你可是我们版的招牌,少了你可不行。呵呵。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表