如何只保留重复的字符串?我做了一个,有点问题,帮我看看!!!
如何只保留重复的字符串?我做了一个,有点问题,帮我看看!!!
//---------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h "
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm "
TForm1 *Form1;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *s1=new TStringList();
s1-> Sort();
s1-> Add( "0001 ");
s1-> Add( "0002 ");
s1-> Add( "0008 ");
s1-> Add( "0001 ");
s1-> Add( "0002 ");;
s1-> Add( "0001 ");
s1-> Add( "0008 ");
s1-> Add( "0002 ");
s1-> Add( "0005 ");
TStringList *sg = new TStringList;
for(int i = 0; i < s1-> Count; i++)
{
if(sg-> IndexOf(s1-> Strings[i]) < 0)
sg-> Add(s1-> Strings[i]);
else
{
continue;
}
}
ShowMessage(sg-> Text);
}
//---------------------------------------
谢谢!!!
[解决办法]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *s1=new TStringList();
s1-> Add( "0001 ");
s1-> Add( "0002 ");
s1-> Add( "0008 ");
s1-> Add( "0001 ");
s1-> Add( "0002 ");;
s1-> Add( "0001 ");
s1-> Add( "0008 ");
s1-> Add( "0002 ");
s1-> Add( "0005 ");
s1-> Sort();
TStringList *sg = new TStringList;
for(int i = 0; i < s1-> Count - 1; i++)
{
for (int j = i + 1; j < s1-> Count; j++)
{
if(s1-> Strings[i] == s1-> Strings[j])
{
sg-> Add(s1-> Strings[i]);
break;
}
}
}
ShowMessage(sg-> Text);
delete s1;
delete sg;
}
[解决办法]
use std::set <std::string>