获取字符数组的高度

时间:2019-03-14 14:05:49

标签: c arrays

我想知道数组的高度是什么

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

但是当我使用strlen时,它仅显示第一行的长度,但是我想知道如何获取该数组中的多少行。 预先感谢。

2 个答案:

答案 0 :(得分:3)

查找数组大小的通用方法是sizeof array / sizeof *array。在您的情况下,这将给出项目数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作为前哨值。)

答案 1 :(得分:2)

解决方案1:

具有一个可以为您存储该数据的int值,以便可以在任何地方轻松访问它们。

解决方案2:

编写一个计算行数的函数,如下所示:

int CountRows(array)
{
  int counter = 0;

  while(elementOfArray)
  {
    counter++;
  }

  return counter;
}