Ich bin gerade dabei C++ zu lernen.
Die erste Aufgabe die wir bekommen haben erfordert den Umgang mit
Strings und Vektoren. Und zwar soll folgendes gemacht werden:
Das Programm übernimmt beliebig viele übergebene Parameter. Für jeden
dieser Parameter wird ein neuer String erstellt und diese Strings in der
Reihenfolge der Parameter in einem vector gespeichert. Im Anschluss gibt
das Programm zuerst in einer einzelnen Zeile die Länge des Vectors
(Anzahl der Parameter) sowie die Länge jedes einzelnen Strings (Anzahl
der Zeichen) in Reihenfolge der Parameter an.
Mein Code schaut so aus:
1 | #include <iostream>
|
2 | #include <string>
|
3 | #include <vector>
|
4 |
|
5 | using std::cout;
|
6 | using std::cin;
|
7 | using std::endl;
|
8 |
|
9 | int main(int argc, char *argv[])
|
10 | { int count;
|
11 | std::vector<std::string> argument_vector(argc);
|
12 |
|
13 | cout << argc << endl;
|
14 |
|
15 | for(count = 0; count < argc; count++)
|
16 | {
|
17 | argument_vector.at(count) = argv[count];
|
18 | cout << "Ausgabe von argv:" << argument_vector.at(count) << endl;
|
19 | cout << "Größe:" << strlen(argument_vector.at(count)) << endl;
|
20 | }
|
21 |
|
22 | cin >> count; // Nur damit das Fenster nach der Ausführung in CMD offen bleibt
|
23 |
|
24 | }
|
Jetzt kenn ich aus C noch Funktionen wie strlen oder sizeof.
Nur funktioniert das in C++ nicht so recht. strlen erwartet einen
Pointer auf die Strings, jedoch ist argument_vector.at(count) kein
pointer.
Kennt jemand eine Funktion mit der das leicht zu machen ist?
Kann doch nicht sein, dass das so aufwendig ist^^.
lg