stringクラスはヌルターミネーターを必要としない

ロベールのC++入門講座 08-01

stringクラスはその文字列の長さを自前で管理しているため、ヌルターミネーターを使わなくても問題ない。

それどころからヌルターミネーターを一つの文字列として認識することさえ可能である。

#include <iostream>
#include <string>
using namespace std;

int main () {
    string str = "FooBarBaz";
    str[2] = '\0';
    
    cout << str.size() << endl;
    cout << str << endl;
    
    return 0;
}
$ main
9
Fo BarBaz

これは便利ですね。