Probleme mit Strings
-
Und um nach std::string oder std:.wstring umzuwandlen, siehe:
http://blog.kalmbachnet.de/?postid=18
-
Soweit war ich ja auch schon, aber wie kann ich die 10 als string jetzt ansprechen??? Die muss doch irgendwo als String gespeichert worden sein.
s hat nur den wert 1 und i ist weiterhin Integer 10. Wo ist die 10 als String?P.S: In der Doku gibts leider kein Beispiel dazu.
-
chris090980 schrieb:
Soweit war ich ja auch schon, aber wie kann ich die 10 als string jetzt ansprechen??? Die muss doch irgendwo als String gespeichert worden sein.
Wie "ansprechen"? Natürlich steht da jetzt "10" drin und Du kannst mit dem String machen was Du willst...
chris090980 schrieb:
s hat nur den wert 1 und i ist weiterhin Integer 10. Wo ist die 10 als String?
Nein, "s" ist jetzt ein "String" und "enthält" "10" (kannst im Watch Fenster anschauen).
Wenn Du es mittels cout ausgeben willst, musst Du diesen String in ANSI umwandlen (siehe mein obiger Link).
Oder Du gibst ihn eben auch mit .NET aus, dann passt alles:Console::WriteLine(s);
Du kannst natürlich auch alles *ohne* .NET machen:
char str[20]; itoa(i, str, 10); cout << str;
-
Jo, dein letztes Beispiel ist echt klasse. Habe ich auch schon ausprobiert.
Also in str wird ja der string (oder array of characters) gespeichert, doch leider kann ich irgendwie nichts damit machen. Ich hab mal "str.length()" eingegeben um die länge zu berechnen, da bekomme ich eine Fehlermeldung, auch
"str->length" funktioniert nicht. Wie mache ich das?? das ist aber dann auch meine (hoffe ich) letzte frage zu diesem Thema.
-
chris090980 schrieb:
Jo, dein letztes Beispiel ist echt klasse. Habe ich auch schon ausprobiert.
Also in str wird ja der string (oder array of characters) gespeichert, doch leider kann ich irgendwie nichts damit machen. Ich hab mal "str.length()" eingegeben um die länge zu berechnen, da bekomme ich eine Fehlermeldung, auch
"str->length" funktioniert nicht. Wie mache ich das?? das ist aber dann auch meine (hoffe ich) letzte frage zu diesem Thema.Das wird auch nicht funktionieren.
str ist kein Objekt einer Klasse sondern ein Array von chars.
Drum gibt's auch keine Mehtode 'length()'probiers so:
#include <cstring> .. strlen(str)
oder auch:
long length = 0; while (str[length] != '\0') {length++;}
-
jo, das klappt echt super geil jetzt, danke.
aha, ja muss man hakt wissen, gibts eine liste mit allen funktionen? oder muss ich mich da durch die Doku wühlen?P.S.: Kannst du mir verraten wie ich so ein watch-Fenter aufrufe? Ich kenne das aus Borland C++ da konnte man die Variablen zur Laufzeit beobachten, wie geht das in Visual C++, ich find da nix unter den Optionen?
-
chris090980 schrieb:
jo, das klappt echt super geil jetzt, danke.
aha, ja muss man hakt wissen, gibts eine liste mit allen funktionen? oder muss ich mich da durch die Doku wühlen?Du solltest Dich mal entscheiden was Du machen willst. Es führt nur zu verwirrung auch auch früher oder später zu frust, wenn Du immer alles durcheinander machst... Du machst C / STL und C++/CLI (.NET). Das ist zwar möglich, aber i.d.R. für einen Anfänger etwas sehr verwirrent.
Für alle drei Dinge gibt es genügend Doku. Das meiste findet man auf msdn.microsoft.comchris090980 schrieb:
P.S.: Kannst du mir verraten wie ich so ein watch-Fenter aufrufe? Ich kenne das aus Borland C++ da konnte man die Variablen zur Laufzeit beobachten, wie geht das in Visual C++, ich find da nix unter den Optionen?
Das Watch-Fenster gibt es natürluch auch. Entweder im Debug-Menü einblenden oder bei mir ist es links unten... (während dem debuggen)
-
Sorry, hab das Watch Fenster immer noch nicht gefunden. Unter dem Menüpunkt "Debuggen" gibt es kein Watch-Fenster. Und wie füge ich dann dort Variablen ein die ich beobachten möchte?
-
Lass dein Programm laufen (im Debugmodus)
Dann im Menü "Debug" -> "Window" -> "Watch" -> "Watch 1".
Oder drück während das Programm läuft "Alt+3"Hinzufügen einer Variable zum Watch:
Am einfachsten: Das Programm bis zu einem Breakpoint laufen lassen,
dann die Variable markieren (Doppelklick drauf) und dann die Variable
auf das Watch-Fenster ziehen.Oder Rechtsklick auf die Variable -> Add Watch
Oder Doppelklick auf die erste Zeile im Watch Fensert und Variablenname eingeben.
-
Vielen Dank, das hat mir sehr geholfen. Ist nämlich nicht drauf zu verzichten wenn das Programm etwas größer ist.