Forum: Compiler & IDEs Int String länge bestimmen


von Chris (Gast)


Lesenswert?

Guten Abend,

ich programmiere momentan in C ein kleines Programm.

Nun habe ich das Problem, dass ich die Länge eines String bestimmen 
möchte.
Mein Code sieht so aus:

uint16_t fkt1[] = {11,12,45,1111,141,1616};

uint16_t laenge;

laenge = strlen(fkt1);


da die Anzahl der Strings in fkt1 immer unterschiedlich sein kann würde 
ich gerne die Länge mit strlen bestimmen.

Die Funktion strlen benötigt aber einen char string weswegen ich immer 
eine Warnung erhalte und er mir die Richtige länge nicht bestimmt.

Gibt es dafür eine Lösung oder andere Funktion?

Für eine Lösung wäre ich sehr Dankbar


Grüße
Christian

von Antwort (Gast)


Lesenswert?

Wenn nicht JEDER String, egal wie lang er ist und was drin steht, mit 
demselben Zeichen abgeschlossen wird (wie es bei char strings bsw. das 
"\0" ist) ist es nicht möglich im Nachhinein die Länge zu bestimmen.

von !Gast (Gast)


Lesenswert?

>uint16_t fkt1[] = {11,12,45,1111,141,1616};
Was ist den das für ein Dingen? Ein String sieht für mich so
1
 char string[]="Unterhose";
aus.

von Yalu X. (yalu) (Moderator)


Lesenswert?

> Nun habe ich das Problem, dass ich die Länge eines String bestimmen
> möchte.

fkt1 ist kein String, sondern ein Array.

> da die Anzahl der Strings in fkt1 immer unterschiedlich sein kann
> würde ich gerne die Länge mit strlen bestimmen.

Auch die Elemente von fkt1 sind keine Strings, sondern Zahlenwerte vom
Typ uint16_t. Die Anzahl der Elemente ändert sich auch nicht.

Ich nehme an, du möchtest die (konstante) Anzahl der Elemente eines
Arrays bestimmen. Das geht bspw. mit
1
  laenge = sizeof fkt1 / sizeof fkt[0];

Dabei wird die Größe (in Bytes) des gesamten Arrays dividiert durch die
Größe eines einzelnen Elements. In deinem Beispiel sollte dies 6
ergeben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.