需要找到数组中的内容数量

时间:2014-07-09 14:17:11

标签: c++ arrays

我有一个char数组,我想找出其中的内容数量。 例如,我的数组是:

char myArray[10];

输入之后的内容是:

ABC

现在我想存储一个变量' size',与内容相关的区域大小。所以,在这种情况下:

size = 3

我如何找到它?

4 个答案:

答案 0 :(得分:3)

一种天真的方法是寻找空终止字符\0,这已经在C函数strlen中实现了,所以有两种方法可以做到这一点:

int StringLength( const char* str, int maxLength )
{
     for( int i = 0; i < maxLength; ++i )
     {
          if( str[i] == '\0' )
              return i;
     }

     return -1;
}

或者您可以按如下方式致电strlen

int iLength = strlen( myArray ); 

但是,正如您已标记此一样,最好的方法是不处理C风格的字符数组,而是使用非常有用的std::string类。

答案 1 :(得分:1)

strlen(myArray)就是你想要的。

答案 2 :(得分:0)

试试这个:

int len = strlen(myArray)。

strlen是stdlib.h库的一部分。不要忘记在你的程序中声明它。

答案 3 :(得分:0)

将数组定义为char myArray[10];并不总是将其内容初始化为零,因此根据您使用ABC填充它的方式,您可以或不可以找到核心长度。在最坏的情况下,常规strlen()将始终报告数字> 10,或甚至导致读访问通过。我尝试首先将其初始化为char myArray[10] = {};