Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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!

Geschrieben

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

Geschrieben

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

Geschrieben

#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

Geschrieben

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

Geschrieben
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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...