Problem mit dem befehl string

SBL-Multimedia

Erfahrenes Mitglied
Mein Complier kennt den Befehl string nicht.
Was kann ich da machen?
Ich benutze den Complier eclipse habs aber auch schon mit Visual C++ (autoren Version) versucht geht auch nicht
 
Hi

den von dem standart Befehl hab ich noch nix gehört.

ich kenn nur einen java compiler der eclipse heißt.

was macht der?

mfg mike4004
 
Zuletzt bearbeitet:
Wenn du Strings verwenden willst musst du auch <string> einbinden, heißt #include <string> oben drüber schreiben.
Sonst kannst du auch ein char Array schreiben, das die einzelnen Buchstaben zu Zeichenketten setzt.
 
Zuletzt bearbeitet:
auch ohne <string> ist es möglich Strings (Arrays) zu verwenden.

leichtere Methode ist es, mit normalen chars ein Array mit fixer größe zu bauen, zB
Code:
char arr[20];

macht ein char array mit 20 zeichen, zu berücksichtigen ist, dass das 1. Element 0 und das letzte 19 ist. Wenn du ein bestimmtes Zeichen daraus willst mit

Code:
arr[i];
darauf zugreifen (i ist hier eine nummer zwischen 0 und 20)


ansonsten steht dir noch die dynamische allocierung mit malloc zur Verfügung, dies spart Speicher, ist jedoch etwas umständlicher zu schreiben ;)

Code:
#include <string.h>

brauchst du nur dann, wenn du die Stringfunktionen wie zB strcmp (zum vergleichen) oder strcpy (zum kopieren) verwenden willst, wenn ich mich nicht irre braucht man für die Funktion strlen(liefert die länge als int wert) auch dieses include file

hoffe ich hab dir damit geholfen ;)

MFG Masda

PS:
solltest du mit C++ arbeiten wollen verwende einfach CStrings, dazu gibts aber einige themen hier ;)
 
Hi.

CStrings gibt es nur bei Microsoft Produkten (Visual C++).

Wenn du die std::string Klasse der C++ Standard Template Library verwenden willst mußt du einerseits den Header <string> einbinden (wie schon bereits gesagt wurde) und andererseits auch den Namensraum std verwenden. Da gibt's verschiedene Möglichkeiten:
Code:
#include <string>

// 1)
std::string s1;

// 2)
{ using std::string;

  string s2;
}

// 3)
{ using namespace std;

  string s3;
}

Grundsätzlich ist es einfacher mit std::string's zu arbeiten als mit C-Strings (char-Arrays).

PS: Eclipse ist kein Compiler sondern eine IDE. Man kann damit Java, als auch C/C++ und andere Sprachen programmieren.

Gruß
 
Zuletzt bearbeitet:
ok danke das mit dem #include <string> hat funktioniert aber ich finds trotzdem bissle komisch weil ich hab mir die schulungs DVD von Video 2 Brain gekauft und die kann den string Befehl ohne den include benutzen
 
string ist zwar kein Befehl sondern eine Klasse bzw. Typ, aber es ist völlig in Ordnung (sprich: konform zum C++ Standard) wenn std::string nicht von vornherein (ohne include string) verfügbar ist. Einige Compiler bzw. C++ Standardbibliotheken binden den string Header automatisch mit ein (z.B. wenn man den iostream Header inkludiert hat), aber Microsoft's Visual C++ tut das nicht.

Gruß
 
wieschoo hat gesagt.:
Genau genommen ist es ein Template von basic_string:) :)
Ein Template ist string auch nicht. string ist einfach ein typedef - und somit ein neuer Name bzw. Alias für einen anderen Typ. Dieser andere Typ ist basic_string<char>, also eine Instanzierung des Klassen-Templates basic_string für char.

Gruß
 
Zurück