在使用c ++执行此操作时,我们可以扫描从第一个char到strlen(text)-1的整个内容,并检查逗号和标点符号.如果找到char,那么我们可以用"space"或任何其他char替换它.
for(i=0;i<str.strlen();i++)
{
if(ch[i] == ',' or [other]) //assume I have copied content of str in ch[]
ch[i]=' ';
}
Run Code Online (Sandbox Code Playgroud)
但是有没有提供此功能的C++函数或类?
我正在处理字符串,unordered_map,isstringstream,vector.每个都有自己的功能.但这有什么可以用于我的上述目的吗?或者是其他东西?
您可以使用std :: replace或std :: replace_if
std::replace(s.begin(), s.end(), ',' , ' ');
std::replace_if(s.begin(), s.end(), [](char c){return c == ','; }, ' ');
Run Code Online (Sandbox Code Playgroud)
看现场样本
对于C++ 03,可以这样做:
#include <cctype>
struct IsComma
{
bool operator()(char c) const
{
return (bool)std::ispunct(c); //!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ as punctuation
}
};
std::replace_if(s.begin(), s.end(), IsComma(), ' ');
Run Code Online (Sandbox Code Playgroud)
不要忘记阅读 std::ispunct
希望这可以帮助!