读取std :: string,从std :: string中删除所有特殊字符

joh*_*ere 4 c++ regex string split c++11

我对这个论坛和C ++非常陌生。因此,请原谅我的疑问/问题。我想读一本std::string。我知道我可以使用at[int]运算符访问元素。我有两个问题:

1)从字符串中删除或删除所有特殊字符(包括空格)

2)仅读取此字符串中的前4个字符或字母

对于1),我正在检查std::erasestd::remove_if但是我也需要消除所有我指的特殊字符和空格。这意味着我需要包括isspace()/ isalpha()等的所有条件。没有单一的方法可以一次全部删除吗?

对于2),我可以像访问数组一样访问字符串,我的意思是字符串[0],字符串[1],字符串[2],字符串[3]。但是我不能将其添加到单个字符串中吗?

请让我知道如何实现此目标?

111*_*111 6

要获取前四个字符:

std::string first4=str.substr(0, 4);
Run Code Online (Sandbox Code Playgroud)

要删除isspace和isalpha谓词(尽管我认为我误解了,在这里,您是说isspace而不是isalpha ??吗?):

str.erase(std::remove_if(str.begin(), str.end(),
    [](char c) { return std::isspace(c) || std::isalpha(c); } ),
    str.end());
Run Code Online (Sandbox Code Playgroud)

您可以使用添加到字符串op+=。例如:

str+="hello";
str+='c';
Run Code Online (Sandbox Code Playgroud)