c++ - C++ 中字符串中的 NUL 字符

标签 c++ string c++11

在下面的代码中,我试图用 '\0' 替换第一个字符。

我希望它打印一个空字符串,但在输出中它只是省略了它并显示其余字符。

int main()
{
    string str;
    cin >> str;

    str[0] = '\0';

    cout << str << "\n";
    return 0;
}

输出:

   testing
   esting

如何在 C++ 中终止字符串?

PS:我正在尝试这种在另一个问题中终止字符串的方法,我需要在其中终止。

最佳答案

std::string 不是以空字符结尾的字符串。如果要清空它,请使用 clear() 方法。如果要删除字符串的元素,请使用 erase() 方法。

关于c++ - C++ 中字符串中的 NUL 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453128/

相关文章:

c++ - std::copy with return values - 防止 "expression: string iterators incompatible"的更好方法?

c++ - 在命名空间 std 中找不到 GCC std::thread

python从列表中的条目中删除所有空格

python - 获取任意长度的所有可能的 str 分区

c++ - 可变参数模板和 RValue 引用

c++ - 是否允许将 std::vector 的元素插入到同一 vector 中?

c++ - 使用 dst with boost 将当前服务器时间转换为时区

c# - 如何在 c# 中使用没有源代码的 c++ 库?

c++ - cygwin 上的 IPP 链接器错误

C++ init for循环内的多个类对象提供相同的内存地址?