Zählt die Anzahl der Zeichen in char-array mit Leerzeichen bis null char
Ich versuche, die Anzahl der Zeichen in einem char-array mit dem Raum bis zum Ende der Zeichenfolge.
Den folgenden kompiliert, aber nicht den richtigen Wert zurück, den ich versuche zu verwenden, Zeiger-Arithmetik, um interate durch mein array.
int numberOfCharsInArray(char* array) {
int numberOfChars = 0;
while (array++ != '\0') {
numberOfChars++;
}
return numberOfChars;
}
Vielen Dank.
Natürlich bin ich versucht, das äquivalent von length () - Funktion aus cstring aber mit einem einfachen char-array.
Natürlich, wenn mein original-array nicht null-terminiert, das könnte zu einer sehr großen Wert zurückgeben (denke ich).
- Es hilft, wenn Sie ein Beispiel geben input und sagen Sie uns, was Sie erwarten, um zu sehen (das ist ziemlich trivial in diesem Fall) und was Sie tatsächlich bekommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht bin ich etwas fehlt, aber warum nicht einfach:
...oder auch:
Zugriff auf das char-Zeiger die Zeiger müssen Sie dereferenzieren den Zeiger. Derzeit sind Sie
vergleichen
array
( eine Adresse) mit'\0'
Können Sie fix Ihr code wie:
Cstring-Funktion, die Sie imitieren ist
strlen
nichtlength
.EDIT:
Wissen, wie die Bedingung in der while funktioniert, können Sie sehen,dieser thread.
array
istNULL
?NULL
zustrlen
?strlen
tut? Pro die definition des Problems durch die OP ("zählen Sie die Anzahl der Zeichen in ein char-array..."), es gibt keine Erwähnung überhauptstrlen
. Ich weißstrlen
ist ein ähnlich wie - Funktion, aber ich bin nicht sicher, warum sein Verhalten müssen nachgestellt werden hier. Nichts für ungut, es ist nur ein Gedanke.Beim schreiben
array++ != '\0'
Sie überprüfen, ob die Speicher-Adressearray
ist '\0'. Versuchen Sie dies:Edit: UPS, codaddict schneller war und seinen code eleganter.