如何獲得一個字符串數組的長度等如何獲取數組的長度?
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