String
-
amser schrieb:
Allgemein
Man unterscheidet zwei Arten von Strings:
1. C-Strings (char*, wchar_t*)
2. C++-Strings (std::string, std::wstring)Gibt es nicht nur ein String?
Kommt drauf an ob man den C-String als String mitzählt. Theoretisch ist es ein Null-Terminiertes Array aus chars.
Und der Beitrag gehört in's C++-Forum...
-
EOutOfResources schrieb:
Kommt drauf an ob man den C-String als String mitzählt. Theoretisch ist es ein Null-Terminiertes Array aus chars.
Und der Beitrag gehört in's C++-Forum...
Da siehst du es ! Es kommt auf die Ansicht an möglich sind 2! :p
-
Ok... hab mich geirrt
Man lernt nie aus
-
Delete schrieb:
EOutOfResources schrieb:
Kommt drauf an ob man den C-String als String mitzählt. Theoretisch ist es ein Null-Terminiertes Array aus chars.
Und der Beitrag gehört in's C++-Forum...
Da siehst du es ! Es kommt auf die Ansicht an möglich sind 2! :p
Blödsinn!
Wenn Du so kommst, was ist dann mit Unicode-Strings? Und nullterminierten C-Arrays aus wchar's?Wenn es auf die Ansicht ankommt, dann gibt es sicherlich eine ganze Menge mehr Strings!
-
Fassen wir zusammen: Es gibt ein Konzept "String" (aka Zeichenkette) und es gibt verschiedene Möglichkeiten, dieses Konzept umzusetzen. In Standard-C++ gibt es schon zwei Ansätze (C-Strings alias
char[]
und C++-Strings aliasstd::basic_string<>
), je nach System kannst du noch weitere Umsetzungen zur Verfügung haben (z.B. CString aus der MFC).
-
CStoll schrieb:
CString aus der MFC
Was ist daran anders? Also der
AnsiString
aus VCL ist eine Reimplementierung vonstd::string
.
-
Die CString hat auf jeden Fall ein komplett anderes Interface als std::basic_string<>. Und ich könnte mir vorstellen, daß auch andere Implementationen unabhängig von der STL entstanden sind.
-
EOutOfResources schrieb:
CStoll schrieb:
CString aus der MFC
Was ist daran anders?
Vielleicht schaust Du Dir einfach mal die Methoden an, die CString zur Verfügung stellt:
http://msdn.microsoft.com/en-us/library/abzc9989.aspx
-
EOutOfResources schrieb:
CStoll schrieb:
CString aus der MFC
Was ist daran anders? Also der
AnsiString
aus VCL ist eine Reimplementierung vonstd::string
.Viel. Guck's dir an.
-
Du benutzt einen String folgender maßen:
#include "stdafx.h" #include "iostream" #include "string" using namespace std; int main() { string Name = "Stefan"; cout << Name; getchar(); }
-
rocker4156 schrieb:
#include "stdafx.h" #include "iostream" #include "string" using namespace std; int main() { string Name = "Stefan"; cout << Name; getchar(); }
Nein!
string
undiotream
sind nicht lokal! Und wieso vorkompilierter Header? Und "using namespace std;" ist hässlich!#include <string> #include <iotream> int main() { std::string MeinString("Foo"); std::cout << MeinString; std::cin.get(); }
-
@Delete: musstest du dich deswegen gleich so aufregen..?
EOutOfResources schrieb:
Und "using namespace std;" ist hässlich!
Das ist eine Ansichtssache Ich find es schöner ohne std::. Außerdem bin ich zu faul, das jedes Mal zu schreiben und vor allem, wenn der Code aus 1000 Zeilen oder mehr besteht.
-
Dann kann man auch unsing std::cout/whatever benutzen, anstatt den gesammten namespace zu includen. Verringert die chance von namespace-pollution. Aber ... alles in allem ist das ziemlich wayne tbh.
Irgendwie sieht der OP ziemlich nach trolling aus ...
-
Habt ihr mal geschaut, wie alt der Thread ist?