Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » (dynamische) objekterzeugung und speicherung zur laufzeit

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ] [ 6 ]
010
18.06.2004, 23:55 Uhr
songbird




Zitat:
Windalf postete
*lol*
ka was du da fabriziert hast....

tja, keine AHnung

kurze Zwischenfrage: wie kann ich prüen, ob ein string leer ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
19.06.2004, 00:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich würde jetzt auswendig raten das es eine funktion empty gibt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
19.06.2004, 00:03 Uhr
typecast
aka loddab
(Operator)


Bei char* hast du zwei Möglichkeiten.

C++:
if (strlen(str) == 0)
...


und

C++:
if (strcmp(str, "") == 0)
...
// oder wie windalf schreiben würde
if (!strcmp(str, ""))


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
19.06.2004, 00:22 Uhr
songbird



das problem ist, dass wir mit dem kram nicht arbeiten können... erklärt mich für doof, aber den unterschied zwischen const char*, char[] und std::string krieg ich nicht auf die kette...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
19.06.2004, 00:27 Uhr
typecast
aka loddab
(Operator)


Also char* ist einfach ein Pointer auf eine Variable vom Typ char (also ein Buchstabe).
Wenn du den Pointer um eins weiterschiebst, zeigt er auf einen anderen Buchstaben (davor musst du aber auch Speicher dafür angelegt haben)

char[] ist ein array von Buchstaben. Damit arbeitest du im Grunde genommen wie mit einem char*. Wenn du ein char bla[10] deklarierst, dann ist hier schon automatisch genug Platz für 10 Buchstaben

Das Ende des Strings wird durch eine 0 anzeigt

std::string ist eine Klasse, die dir das ganze Speicherghüpfe abnimmt und dir das arbeiten mit Strings extrem ereinfacht. Zum Beispiel kannst du auch sowas schreiben

C++:
std::string bla = "jakfjasld";
if (bla == "")
  std::cout << "der string ist ja leer" << std::endl;



Das Wort const symbolisiert dem Compiler, dass eine Variable die einmal mit einem Wert angelegt wurde immer den selben Wert haben wird.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
19.06.2004, 00:28 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ob du char[] oder char* schreibst ist mehr oder weniger das gleiche...

ein std:string ist quasi nur eine klasse die dir die arbeit erleichtert...
in Java hast du doch soweit ich weiss auch ne Stringklasse und musst nicht ein array von chars nehmen um einen string dazustellen...

du musst dir dringend verständlich machen was pointer sind an sonsten wirst du probleme haben dein projekt zu beenden
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
19.06.2004, 00:36 Uhr
songbird



aber wenn std::string doch so eine vereinfachung ist, wieso wird dann jedesmal wenn ich damit arbeite nach einem char[] oder pointer verlangt???
zum beispiel bei strcmp
und wenn ich am anfang

C++:
using namespace std


festlege, sollte ich doch mit stings danach ohne das vorangestellte std:: arbeiten können oder???

Dieser Post wurde am 19.06.2004 um 00:36 Uhr von songbird editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
19.06.2004, 00:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ja aber mit using direktiven handelt man sich nur ärger ein... schmeiss die lieber raus und verwende an jeder stelle std:: wo es benötigt wird....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
19.06.2004, 00:50 Uhr
songbird



schön dass uns das using namespace in der uni die ganze zeit ans herz gelegt wird...

jeder sagt was anderes...

seh ich das richtig, dass ich dann "einfach" vor jede zeile, in der ein string vorkommt, std:: setzen muss??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
19.06.2004, 00:55 Uhr
typecast
aka loddab
(Operator)


Du kannst auch using std::string schreiben. Dann kannst du es bei strings weglassen.

Das einige Funktionen ein char* verlangen liegt daran, dass es sich dabei um alte C-Funktionen handelt. Die meisten davon kannst du in C++ Programmen durch entsprchendes In C++ weglassen. Wenn du aber unbegdingt ein const char* brauchst (z.B. bei Filestreams) dann kannst du auf die Mehtode c_str() von std::string zugreifen.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ] [ 6 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: