如何获得一个字符串数组的长度等如何获取数组的长度?
str 30 name[];//dynamic array
我用于获取长度以下,但它示出了误差为“变量是类型的类不”。
int len=name.get_length();
如何获得一个字符串数组的长度等如何获取数组的长度?
str 30 name[];//dynamic array
我用于获取长度以下,但它示出了误差为“变量是类型的类不”。
int len=name.get_length();
您需要dimOf
函数。看看到参考:
对不起,没有内建函数返回的字符串数组的大小。既然你完全控制了你放在阵列中的东西,那就不需要!
内置函数dimof
返回数组,这是唯一的一个固定的大小的数组像str 30 name[20]
,其中dimof(name)
返回20.
甲干净的方式保持在控制的实用价值的分配的大小,是使用setter函数:
static void TestArray(Args _args)
{
str 30 name[];
int n = 0;
int i;
void nameSet(int _i, str 30 _name)
{
n = max(n,_i);
name[_i] = _name;
}
;
nameSet(2,'abc');
nameSet(4,'def');
for (i = 1; i <= n; i++)
info(name[i]);
}
没有上限指标的限制,所以访问name[7]
是完全有效的,在这种情况下返回一个空值。这可以用于你的优势,如果你总是使用所有的孔,并从不存储空白:
static void TestArray(Args _args)
{
str 30 name[];
int i;
name[1] = 'abc';
name[2] = 'def';
for (i = 1; name[i]; i++)
info(name[i]);
}
要小心,访问高的折射率(在这种情况下,高于2)可能实际上增加的分配大小阵列。
这听起来像你可能更快乐使用Array
集合类。
http://msdn.microsoft.com/en-us/library/array.aspx
static void TestArray(Args _args)
{
Array strArray = new Array(Types::String);
;
strArray.value(1, 'abc');
strArray.value(2, 'def');
info(strfmt("%1", strArray.lastIndex()));
}
感谢..但我们不能抽到使用dimOf字符串数组的长度。我试着用dimOf函数来处理字符串数组。 – user1590444