除去

2010-12-13 5 views
0

私は私が持っている-abc myStr1になりまし除去

string myStr = "myname-abc"; 

string myStr1 = strstr(myStr.c_str(), "-"); 

をfollowoingています。しかし、私はそれのinfrontを望んでいません。私は "abc"を持っていたいのですが、それはどのように文字列データ型を使って行うのですか?

ありがとうございました。

答えて

1
size_t pos = myStr.find('-'); 
if (pos != std::string::npos) 
{ 
    myStr1 = myStr.substr(pos + 1); 
} 
2
string myStr1 = strstr(mStr.c_str(), "-") + 1; 

か、Cスタイルの文字列に変換しないようにしたい場合:

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

わからない私は、次のだけど、あなたは最初の要素を消去したい場合は?あなただけ-にすべてを消去したい場合は

str.erase(0, 1); // erases 1 element starting from position 0 

また、:あなたがプログラムを供給されているデータがどこかに-を持つことが保証されていない場合は

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

、あなたはリターンを確認する必要がありますstring::nposの場合はstr.find('-')の値、発生していない場合の戻り値

0

このプログラムの出力

ABC ABC

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; 
} 
0
std::string myStr("myname-abc"); 
std::string myStr1(++std::find(myStr.begin(), myStr.end(), '-'), 
        myStr.end()); 
0

私はあなたが求めているものを理解していれば、それはのインスタンスを削除します " - " 文字列から?その場合は、次のようにも動作します。..

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 "-" 
} 
-1

enter image description here

#include<iostream.h> 
#include<conio.h> 
void main() 
{ 
clrscr(); 
char a[30]; 
cout<<"enter any string "; 
cin.get(a,30); 
char b[30]; 
for(int i=0;a[i]!='\0';i++) 
{ 
if(a[i]!='!' && a[i]!='#'&& a[i]!='@' && a[i]!='$' && a[i]!='%' && a[i]!='^' && a[i]!='&' && a[i]!='*' && a[i]!='?') 
{ 
b[i]=a[i]; 
cout<<b[i]; 
} } 
getch(); 
    }