DerAlex Geschrieben 17. April 2002 Geschrieben 17. April 2002 Hi, ich bin ein ziemlicher Newbie in c++, es kann also sein das manche von euch denken was füpr eine dumme frage, aber sie muss gestellt werden Also es gibt ja in VBA die möglichkeit ein kompletes wort in eine variable einzulesen und dieses dann auch widerzugeben! wie kann ich das in c++ machen? ich benutze den borland compiler! über den quelltext zur lösung dieses Problems wäre ich sehr dankbar! Gruß Swabe Zitieren
Woodstock Geschrieben 17. April 2002 Geschrieben 17. April 2002 Nun, ich denke wenn ich Dich in die richtitge Richtung schubse ist es besser als Dir einen Quelltext zu präsentieren. Dein Problem kannst Du nur mit Hilfe eines Character Arrays lösen. Anders ist das nicht möglich. Definition: char Variable[ ]; In den eckigen Klammen muss eine Zahl stehen, die anzeigt wie viele 'Stellen' diese Vaiable hat. Das kommt darauf an wie groß das WOrt ist welches Du speichern willst. Die Zahl muss immer mindestens um 1 größer sein als Dein Wort Buchstaben hat, weil am Ende ein '\0' = Nullzeichen angehängt wird. Willst Du das die Variable direkt bei der Definition ein Word zugewiesen bekommt geht das so: char Variable[ ]={"Text"}; Intern ist das jetzt: char Variable[5]; Variable = "Text"; Jetzt kannst Du darin aber auch nur Wörter mit bis zu vier Buchstaben speichern. Bine Zitieren
nic_power Geschrieben 17. April 2002 Geschrieben 17. April 2002 Ganz so ist das nicht, arbeitest Du mit festen Strings reicht ein einfaches: char *str="hallo wie gehts"; bzw. char *str; str="hallo wie gehts" Die Angaben ueber die Arraygroesse sind nicht noetig. Falls Du was einlesen moechtest, solltest Du einen ausreichend grosse Puffer bereitstellen (char buffer[1024]) und dann den Wert in diesen Puffer einlesen. Nic Zitieren
Orffi Geschrieben 17. April 2002 Geschrieben 17. April 2002 char *str; reserviert nur Speicher für einen Zeiger vom Typ char. Das bedeutet, daß er nur auf Speicherplatz zeigen sollte, der ordnungsgemäß angefordert wurde. In dem Fall: str = "Hallo Welt!"; erledigt das der Compiler. Wenn man einen zweiten String im Programm ausgeben möchte, muß für den auch schon irgendwo Speicherangefordert worden sein. Wenn man also schon in C++ programmiert, dann sollte man sich daran erfreuen, daß C++ objektorientiert ist und eine STL (Standard Template Library) mitbringt. Das bedeutet für die Frage: man kann die Klasse string aus <string> benutzen. Dann muß man sich auch nicht um das leidige Thema der Speicheranforderung/-freigabe kümmern. HTH Jan Zitieren
DerAlex Geschrieben 18. April 2002 Autor Geschrieben 18. April 2002 cool danke fürdie antworten ich werde das morgen mal ausprobieren, denn irgendwie ist es doof das ich mom immer nur mit 'j' oder 'J' arbeiten muss! P.S. ich programmiere mom noch nicht objektorientiert, wir siend immer noch bei tollen dos boxen :-( aber dann müsste es ja möglich sein in einen string ein wort ein zu lesen und diesen dann z.b. in einer if abfrage zu vergleichen, das z.b. ein teil des programmes nur ausgeführt wird wenn als name múeller eingegeben wurde! Zitieren
Orffi Geschrieben 18. April 2002 Geschrieben 18. April 2002 Wieso kann man in einer Konsolenanwendung nicht objektorientiert programmieren? Ich kann dort doch ebenso mit Klassen arbeiten. Und ehrlich gesagt braucht man auch keine Windows-Anwendung programmieren, um OOP zu verstehen. Ich würde sogar eher sagen, daß es hinderlich ist, weil der C++ Standard verwässert wird. Bei Konsolenanwendungen kann man in 100%igem ISO-C++ programmieren und lernt trotzdem was es heißt, objektorientiert zu programmieren. Jan Zitieren
Woodstock Geschrieben 19. April 2002 Geschrieben 19. April 2002 Das eine hat mit dem anderen wirklich nichts zu tun. Ich programmiere auch noch keine Fenster, wohl aber objektorientiert. Ich arbeite mit Klassen usw. und das auch nur in einer 'DOS-Box' bzw. eben der Commandline, über die die Programme ja aufgerufen werden können. Bine Zitieren
DocJunioR Geschrieben 19. April 2002 Geschrieben 19. April 2002 #include <string.h> es gibt da einen datentyp, der einen String simuliert. Außerdem kann man mit den Funktionen der Lib Strings durchsuchen, kopieren, aneinanderhängen, etc.. würd ich empfehlen, da man das Ganze sonst selbst basteln müsste .. und daskostet doch nur Zeit.. cYa DjR Zitieren
Orffi Geschrieben 19. April 2002 Geschrieben 19. April 2002 Ich habe schon weiter oben erwähnt, daß es die Klasse string gibt. Wenn Du also nochmal posten mußt, daß es eine Klasse string gibt, dann mache es bitte auch richtig. #include <string.h> ist deprecated. Richtig ist: #include<string> Was meinst Du mit "...der einen String simuliert"? Mit der Klasse string kann man Strings verwalten. Mehr will man doch gar nicht haben. Außerdem kann man mit den Funktionen der Lib Strings durchsuchen, kopieren, aneinanderhängen, etc.. Die Klasse string bringt diese Funktionalitäten mit. Man muß also nicht die ganze Bibliothek durchsuchen! Jan Zitieren
DerAlex Geschrieben 19. April 2002 Autor Geschrieben 19. April 2002 Original geschrieben von Orffi Ich habe schon weiter oben erwähnt, daß es die Klasse string gibt. Wenn Du also nochmal posten mußt, daß es eine Klasse string gibt, dann mache es bitte auch richtig. #include <string.h> ist deprecated. Richtig ist: #include<string> Was meinst Du mit "...der einen String simuliert"? Mit der Klasse string kann man Strings verwalten. Mehr will man doch gar nicht haben. Die Klasse string bringt diese Funktionalitäten mit. Man muß also nicht die ganze Bibliothek durchsuchen! Jan d.h.ich kann dann sagen unter der variablendekaration: string test; //und dann cin>>test; das wäre ja richtig praktisch Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.