当前位置:  开发笔记 > 编程语言 > 正文

C++如何从std :: string中删除\ 0 char

如何解决《C++如何从std::string中删除\0char》经验,为你挑选了1个好方法。

\0从给定字符串中删除char 的正确方法是什么.

我没有成功:

std::string msg(data); // Data comes from a remote system connected via socket...
msg.erase(std::remove(msg.begin(), msg.end(), '\0'), msg.end());

这给出了编译错误:

error: cannot convert ‘std::__cxx11::basic_string::iterator {aka __gnu_cxx::__normal_iterator >}’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’

data来自使用套接字的远程系统,并且/0由于源逻辑而在中间包含几段代码.



1> Walter..:

你的问题来自缺失的#include指令.你的目的是要调用std::remove(),但你不经意的叫std::remove().所以

#include 

它应该工作.

(恕我直言std::remove(const char*)应该std::remove_file(std::string const&)或至少std::remove_file(const char*).)

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有