Ich bin neu im Programmieren. Ich habe versucht, eine Funktion in C ++ zu schreiben, die den Inhalt einer Zeichenfolge in einem Zeichenfolgenarray bei einem bestimmten Parameter explodiert, Beispiel:
%Vor%sollte String-Array zurückgeben:
%Vor%Ich kann den String gut in Token zerlegen, aber der schwierigste Teil für mich ist, wie kann ich die Anzahl der Elemente in stringArray angeben, bevor ich ihm den aktuellen String toke zuweise und wie ich stringArray von der Funktion zurückgebe.
Würde jemand mir zeigen, wie man die Funktion schreibt?
Edit1: Ich brauche die Ergebnisse nicht unbedingt in einem String-Array, nur einen Container, den ich als reguläre Variable mit einer Art Indizierung bezeichnen kann.
Hier ist mein erster Versuch mit Vektoren und Strings:
%Vor%Hoffentlich gibt Ihnen das eine Idee, wie Sie das anstellen können. In Ihrer Beispielzeichenfolge werden die korrekten Ergebnisse mit diesem Testcode zurückgegeben:
%Vor%Verwendung von STL (leider kein Compiler nicht getestet)
%Vor%// oder definieren Sie ein Token
%Vor% Wenn Sie darauf bestehen, stringArray
zu einem Array zu machen, das einem std::vector<>
entgegengesetzt ist (was das Richtige wäre), müssen Sie entweder:
Die Verwendung eines Vektors ist einfacher vector::push_back()
fügt neues Material an das Ende an. Also:
Schließlich nicht benötigt Zur Vollständigkeit gelassen.
Um das String-Array zurückzugeben, verwenden Sie char **
.
Wie in
%Vor% BTW-- Wie weiß die aufrufende Funktion, wie viele Elemente im zurückgegebenen Array sind? Das musst du auch lösen. Verwenden Sie std::vector<>
, es sei denn, Sie sind durch äußere Kräfte eingeschränkt ...
Warten Sie bis Ihre Datenstrukturen Klasse und dann codieren Sie es mit einer verknüpften Liste. Wenn es für die Hausaufgaben ist, können Sie vielleicht damit davonkommen, das Array einfach nur sehr groß zu machen.