[c++]erklärung strings

Icon_Master

Lt. Commander
Registriert
März 2003
Beiträge
1.228
[c++]brauche erklärung datentyp string

morgen,

ich bin vor 1-2 wochen mit programmieren angefangen und dann bin ich letztens über strings "gestolpert". dann hab ich mal ein wenig gegoogelt und nen paar sites gefunden zu strings aber irgendwie hab ich den dreh noch nicht so ganz raus. bis jetzt weiß ich nur ,dass es in c++ keine wirklichen strings gibt ,sondern dass das eher arrays aus zeichen sind im gegensatz zu strings in basic oder so.
deshalb wollt ich mal fragen ,ob ihr mir das nen bissl für "dumme" erklären könntet :rolleyes: so mit deklaration und definition etc.

schonmal dank im vorraus

cyA ICon
 
Zuletzt bearbeitet:
Strings sind einfach nur Zeichenketten, wichtig ist du musst auf die Binäre 0 aufpassen, das heißt wenn du einen String deklarierst.

char zeikette[10]

Dann kannst du nur 9 Zeichen einlesen, das 10 ist für die Binäre 0 resaviert.
Sonst sind Strings auch nicht anders als Felder.

Gruß

Willüüü
 
Also die einfachen Arrays aus char-Variablen sind C-Strings, es gibt aber in C++ die Klasse string, die kann Zeichenketten variabler Länge verarbeiten.

//irgendwo einmalig in der datei schreiben:
#include <string>
using namespace std;
//die eigentliche variable
string sVariable = "Ein String";

da er seine Größe verändern kann, ist anschließend auch sowas wie
sVariable = "Ein deutlich längerer String";
möglich, bei C-Strings hätte man an der Stelle ein Problem. Allerdings kann man nicht ohne weiteres einem String eine Zahl zuweise wie z.B. es bei Basic möglich war, also sVariable = 5; ist nicht erlaubt, da muss man einen Umweg über stringstreams gehen. Umwandeln lassen sich c++ strings in c Strings so: sVariable.c_str();. Die Funktionen zum Suchen und Ersetzen sind auch alles Memberfunktionen, eine knappe Übersicht gibts hier: http://www.fredosaurus.com/notes-cpp/strings/header-string.html
 
das hilft mir doch schon mal ein wenig weiter ..... jetzt noch ne frage , wie kann ich das denn machen, dass ich wenn ich einen string durch eine eingabe defniere mit leerzeichen füllen möchte !?


cyA ICon
 
push push .... :)

ehm achja ,cih hab da noch ne frage ,wo issn der unterschied zwischen dem datentyp string und char-arrays?! gibts da einen ,bis auf den ,dass man bei string nicht die variablenlänge definieren muss?


cyA ICon
 
U.a. hat man bei einem C++ String noch eine Menge Funktionen beigelegt (wie beim Link zu sehen). Außerdem kann man ihn einfach per Zuweisungsoperator (=) kopieren. Bei einem Array muss man jedes einzelne Element einzeln kopieren, bei einem C-String also jeden Buchstaben. Natürlich gibt es dafür fertige Funktionen (wie auch für Suchen etc.), aber ist string1 = string2 nicht irgendwie einfacher als strncpy(string1, string2, sizeof(string2))? Außerdem kann man als Anfänger weniger einfach einen Buffer Overflow einbauen. C++ Strings sind einfacher zu programmieren, aber man kann damit nichts machen, was man irgendwie auch mit C-Strings hinkriegen würde. Im Prinzip sind C++ Strings ein Aufsatz auf C-Strings, den man selber im Progamm nachprogrammieren könnte.
 
jetzt hab ich noch ne frage mit dem leerzeichen. wie kann ich also einen string mit einem text, der auch leerzeichen enthält, füllen ,sodass er nicht nach dem ersten "wort" abbricht ,wenn ich den text wieder ausgebe?!

cyA ICon
 
Zurück
Oben