亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我是想把一個字符串@前面的 . 刪除,再把@前面的+和@之間的部分刪除

我是想把一個字符串@前面的 . 刪除,再把@前面的+和@之間的部分刪除

C++
小怪獸愛吃肉 2023-04-22 18:14:20
#include<iostream>#include<string>using std::string;int main(){using namespace std;int n;cin>>n;cin.get();int k=1;string s[n];int x;int y;int z;for(int i=0;i<n;i++){getline(cin,s[i]);}for(int i=0;i<n;i++){x=s[i].find("@");y=s[i].find(".");while((y!=string::npos)&&(y<x)) {s[i].erase(y,1);y=s[i].find(".",y+1);}z=s[i].find("+");if((z<x)&&(z!=string::npos)){s[i].erase(z,x-z);}if(i>0){for(int j=0;j<i;j++){if(s[i]==s[j]){k-=1;break;}}}k+=1;}cout<<k<<endl;return 0;} 這個為什么erase越界了?我就是想把一個字符串@前面的 . 刪除,再把@前面的+和@之間的部分刪除一共輸入n個字符串,然后經過相同的處理,然后輸出處理后不同字符串的個數
查看完整描述

1 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

erase()函數的功能是用來刪除容器中的元素。
函數原型:
iterator erase(iterator where);
iterator erase(iterator first,iterator last);
basic_string& erase(size_type p0=0,size_type n=np);
刪除某個容器里的某個元素:c.erase(T);
鏈表容器以list為例,執行container.erase(it)。
list<int>::iterator it; 
for (it = lt.begin(); it != lt.end(); ) {
if (*it % 2 == 0)
lt.erase(it++);
else
++it;
}


查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號