更新时间:2016-05-18 22:36:00浏览次数:1+次
//删除string重复的元素
#include "iostream"
#include "string"
#include "windows.h"
#include "stdio.h"
using namespace std;
int main()
{
string str;
const char *a;
int len,n;
int num=0;
string s;
int i;
int index;
string::iterator pos;
int b[10];
memset(b,0,10);
cin>>str;
len=str.length();
a=str.c_str();
cout<<"删除了重复的元素后的字符串:"<<endl;
for(i=0; i<len; i++)
{
index=str.find(a[i],i+1);
if(index!=str.npos&&i+1<len)
{
b[num++]=index;//将重复的元素的索引在数组中存好!
}
}
for(i=0; i<num; i++)
{
b[i]=b[i]-i;//删除了一个元素之后,就递减string的长度
pos=str.begin();
std::advance(pos,b[i]);//移动iterator指向每次要删除的元素的索引
str.erase(pos);
}
cout<<str;
system("pause");
return 0;
}
其实呢,我们之前说的那个问题也就解决了!那就是只限于两个重复元素的问题。怎么解决了呢?期待吧!相关资讯