我已将文本文件内容加载到std :: string.我想从加载的字符串中删除空格.
方法1:
在循环语句中使用string.find()扫描字符串,并使用string.erase()删除空格;
方法2:
使用循环语句中的string.find()扫描字符串,并使用string.append()将非空白字符复制到新的string()变量;
方法3:
使用循环语句中的string.find()扫描字符串,并使用string.replace()将非空白字符复制到新字符串(size_t n,char c)变量;
方法4:
分配char*(使用malloc [源字符串的大小])
在循环语句中使用string.find()扫描字符串,并使用strcpy将非空白字符复制到char*变量,然后使用strcat();
最后将char*复制到一个新的字符串
free char*
Que*_*tin 11
编辑:升级到区域设置感知特征.谢谢用户657267!
标准算法很整洁!
s.erase(std::remove_if(
begin(s), end(s),
[l = std::locale{}](auto ch) { return std::isspace(ch, l); }
), end(s));
Run Code Online (Sandbox Code Playgroud)
那是为了就地修改,如果你需要保留原始字符串:
std::string s2;
s2.reserve(s.size());
std::remove_copy_if(
begin(s), end(s),
std::back_inserter(s2),
[l = std::locale{}](auto ch) { return std::isspace(ch, l); }
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6293 次 |
| 最近记录: |