C按字母顺序动态分配

时间:2012-11-18 18:28:52

标签: c

我想打印这一系列的国家,但是当两个国家相同时,我想打印一次。国家已按字母顺序排列任何想法???

for(b=0;b<v;b++){

if(strcmp(country[b-1],country[b]) !=0){
    printf("%s",country[b]);}

}

v是国家数量

1 个答案:

答案 0 :(得分:1)

为krajina动态分配2维字符数组。

参考此问题: 2 Dimensional Memory Allocation

编辑:详细说明:

好的。你说你可以算上国家的数量。假设您将其存储在名为count的变量中?

现在你需要分配一个行数为count行数为31列的二维字符数组吗?你这样做如下。

int i = 0;
int **country = NULL;

if (!(country = calloc(count, sizeof(*country)))) //allocate rows
    return (0);
for (i = 0; i < count; i++)
{
    country[i] = calloc(31, sizeof(*(country[i]))); //allocate columns
}

现在您拥有country变量,您可以正常使用它,就像使用2d char数组一样(就像您在代码中使用的那样)