C++ 删除C+中字符串中的特殊字符+;

C++ 删除C+中字符串中的特殊字符+;,c++,C++,我有以下几点 string myStr = "myname-abc"; string myStr1 = strstr(myStr.c_str(), "-"); 现在在myStr1中,我有-abc。但我不想在它前面加“-”,我想加上“abc”,我该如何使用字符串数据类型来实现这一点 谢谢你的帮助 string myStr1 = strstr(mStr.c_str(), "-") + 1; 或者,如果要避免转换为C样式字符串: string myStr1(m_Str, m_Str.find('

我有以下几点

string myStr = "myname-abc";

string myStr1 = strstr(myStr.c_str(), "-");
现在在myStr1中,我有-abc。但我不想在它前面加“-”,我想加上“abc”,我该如何使用字符串数据类型来实现这一点

谢谢你的帮助

string myStr1 = strstr(mStr.c_str(), "-") + 1;
或者,如果要避免转换为C样式字符串:

string myStr1(m_Str, m_Str.find('-') + 1);
或者,如果要避免转换为C样式字符串:

string myStr1(m_Str, m_Str.find('-') + 1);

不确定我是否在跟踪,但是否要删除第一个元素

str.erase(0, 1); // erases 1 element starting from position 0
另外,如果您只想擦除
-
之前的所有内容:

str.erase(0, str.find('-') + 1); 

如果向程序提供的数据不能保证在某个地方有一个
-
,您应该检查
str.find('-')
的返回值,对于
string::npos
,当没有出现时返回值。

不确定我是否在跟踪,但您想删除第一个元素吗

str.erase(0, 1); // erases 1 element starting from position 0
另外,如果您只想擦除
-
之前的所有内容:

str.erase(0, str.find('-') + 1); 
如果向程序提供的数据不能保证在某个地方有一个
-
,则应检查
str.find('-')
的返回值,对于
string::npos
,在未找到任何值时返回值。

此程序输出

美国广播公司

int main()
{
    string myStr = "myname-abc";
    string myStr1 = strstr(myStr.c_str(), "abc");

    int index = 0;
    while(myStr[index++] != '-'){}
    string myStr2 = myStr.substr(index);

    cout << myStr1 << " " << myStr2 << endl;

    return 0;
}
intmain()
{
字符串myStr=“myname abc”;
字符串myStr1=strstrstr(myStr.c_str(),“abc”);
int指数=0;
而(myStr[index++]!='-'){}
字符串myStr2=myStr.substr(索引);
cout此程序输出

美国广播公司

int main()
{
    string myStr = "myname-abc";
    string myStr1 = strstr(myStr.c_str(), "abc");

    int index = 0;
    while(myStr[index++] != '-'){}
    string myStr2 = myStr.substr(index);

    cout << myStr1 << " " << myStr2 << endl;

    return 0;
}
intmain()
{
字符串myStr=“myname abc”;
字符串myStr1=strstrstr(myStr.c_str(),“abc”);
int指数=0;
而(myStr[index++]!='-'){}
字符串myStr2=myStr.substr(索引);

如果我理解您的要求,那就是从字符串中删除“-”的实例吗?如果是这样,下面的操作也可以

string foo("-abc");
string::size_type fm = foo.find('-');
while (fm != string::npos)
{
  foo.erase(foo.begin() + fm);
  fm = foo.find('-', fm); // find the next instance of "-"
}

如果我理解您的要求,那就是从字符串中删除“-”的实例?如果是这样,下面的操作也可以

string foo("-abc");
string::size_type fm = foo.find('-');
while (fm != string::npos)
{
  foo.erase(foo.begin() + fm);
  fm = foo.find('-', fm); // find the next instance of "-"
}

#包括
#包括
void main()
{
clrsc();
chara[30];
cout

#包括
#包括
void main()
{
clrsc();
chara[30];
库特