Es stimmt natürlich was Nexus geschrieben hat, aber ich entscheide mich jetzt doch mal für den ,,Lowie-Code" weil ich einfach noch nicht so weit bin das andere wirklich zu durchschauen.
Du weisst aber, dass der objektorientierte, moderne Code viel einfacher ist?
Zum Vergleich std::string vs. char*:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
// Text speichern
std::string Str = "Hallo";
char* CStr = "Hallo"; // geht noch.
// auf Zeichen zugreifen
Str[0] = 'h';
CStr[0] = 'h'; // oh, das führt ja zu undefiniertem Verhalten...
// Text anhängen
Str.append(" Welt");
char* temp = new char[strlen(CStr) + strlen(" Welt") + 1];
strcpy(temp, CStr);
strcat(temp, " Welt");
CStr = temp;
// erstes Zeichen löschen
Str.erase(0);
for (unsigned int i = 0; i < strlen(CStr); ++i)
CStr[i] = CStr[i+1];
// am Ende vom Scope - std::string räumt selber auf
delete[] CStr;
|
Das waren jetzt wirklich nur ein paar triviale Anwendungsfälle. Von Exceptionsicherheit und anderen Dingen reden wir besser nicht...