【发布时间】:2010-08-04 15:06:42
【问题描述】:
我有一堆看起来像这样的字符串:
'Hello1-FOO', 'Aello2-FOO', 'Bye1-BAR', 'Bye3-BAR', 'Hello22-FOO', 'Bye4-BAR', 'Welcome-BAR' ...
它们都存储在一个结构中。
struct str {
char *strings;
}
...
struct str **t_str;
size_t j;
t_str = malloc(sizeof *t_str * 20);
for (j = 0; j < 20; j++)
t_str[j] = malloc(sizeof *t_str[j]);
...
t_str[0]->strings = "Hello1-FOO";
t_str[1]->strings = "Aello2-FOO";
....
我想做的是按类别显示(排序)它们,所以它们看起来类似于:
FOO:
Hello1-FOO
Aello2-FOO
Hello22-FOO
BAR:
Bye4-BAR
Welcome-BAR
Bye1-BAR
Bye3-BAR
基本上按'-'后面的记号对它们进行分组
这样做的好方法是什么?处理字符串后,我应该将它们存储在第二个结构中吗?任何想法将不胜感激。谢谢
【问题讨论】:
-
首先要解决的是您的结构只允许一个字符串。如果那是真正的代码,那么您还远远没有遇到这个问题。
-
@David Thornley:我已经为上面提到的所有字符串分配了内存。我可以毫无问题地显示它们(未分组)。我只是想评论他们被关押在哪里。
-
那么每个字符串都有一个
str实例吗?这就是您的代码的样子,但描述听起来像是您想将所有字符串存储在单个str实例中 -
@Michael Mrozek:很抱歉描述错误。是的,每个字符串都有一个 str 实例。