首页 > 解决方案 > 获取char数组的高度

问题描述

我想知道数组的高度是多少:

main(){
    int a;
    char array[10][10]={
        "45",
        "34",
        "23",
        "12",
    };
    a=strlen(array);
    printf("%d",a);
}

但是当我使用strlen它时,它只显示第一行的长度,但我想知道如何获取该数组中有多少行。提前致谢。

标签: carrays

解决方案


查找数组大小的通用方法是sizeof array / sizeof *array. 这给出了项目的数量,在你的情况下是 10。

如果您想知道 10 个中有多少包含有效字符串,则应使用标记值,例如""

char array[10][10]={
        "45",
        "34",
        "23",
        "12",
        "",
    };

// search for used size of the array
size_t i;
for (i=0; i<10; i++)
{
  if(strcmp(array[i], "")==0)
    break;
}
// here i contains the used size

(通常你宁愿有一个数组char* strings[n],其中每个单独的读/写字符串可以通过动态分配具有可变长度。在这种情况下,你会使用 NULL 作为标记值。)


推荐阅读