Verwendung von Nullzeichen in Strings (C ++)
Ich arbeite gerade an meinem C ++ und stolpere über ein merkwürdiges Verhalten in Bezug auf Zeichenfolgen, Zeichen-Arrays und das Null-Zeichen ('\0'
). Der folgende Code:
#include <iostream>
using namespace std;
int main() {
cout << "hello\0there"[6] << endl;
char word [] = "hello\0there";
cout << word[6] << endl;
string word2 = "hello\0there";
cout << word2[6] << endl;
return 0;
}
erzeugt die Ausgabe:
> t
> t
>
Was ist hinter den Kulissen los? Warum speichern das Stringliteral und das deklarierte char-Array das't'
bei Index 6 (nach dem internen'\0'
), aber der deklarierte String nicht?