Andere Lösung?
Nun, da gibt es mehrere, das kommt auf die Deklaration an.
Angenommen du machst es so:
static const array[][] = {
"String1",
"String2",
"String3"
};
printf("Anzahl der Strings: %d",sizeof array); //->Gibt 3 aus
Das was du aber willst, ist viel mehr eine Liste an Elementen.
new string[30][128];
string[0] = "String1";
string[1] = "String2";
string[3] = "String4";
So jetzt können wir nicht mehr mit sizeof oder strlen arbeiten.
Zusätzliches Problem ist, dass Lücken entstehen können wie z.B. in diesem Fall cell 2 leer ist.
Lösung ist eine Funktion:
stock CountStrings(const str[][],len=sizeof str)
{
new counter;
for(new i; i<len; i++)
{
switch(str[i][0])
{
case '\0','\1': continue;
default: counter++;
}
}
return counter;
}
//Nutzen können wir sie in unserem Beispiel so:
new string[30][128];
string[0] = "String1";
string[1] = "String2";
string[3] = "String4";
printf("Anzahl der Strings: %d",CountStrings(string)); //->3
mfg. ![]()