我有一個文本A,內容是“012345031”,怎樣把里面重復的字符去了,最后文本A的內容是“012345”,用什么函式呀,最好 能給出完整的代碼,謝謝
uj5u.com熱心網友回復:
這個去除重復值,STL有演算法的。#include "string"
#include "Algorithm"
char *str = "012345031";
std::string result = str;//計算結果
std::sort(result.begin(),result.end());
std::string::iterator newlast = std::unique(result.begin(),result.end());
result.erase(newlast, result.end());
uj5u.com熱心網友回復:
如果有漢字,則要使用UnicodeString 或 WideStringUnicodeString str = L"這里的漢字有重復,要去除重復的漢字";
UnicodeString result = str.c_str(); //復制一份
WideChar *start = result .c_str() ;
WideChar *end = start + result .Length();
std::sort(start,end);
WideChar *newlast = std::unique(start,end);
result.SetLength(newlast-start);//已經去除重復了。
ShowMessage(L"源字串:"+str+L"\n去除重復后:"+result);
uj5u.com熱心網友回復:
如果文本A是EDIT的內容也就edt1->Text;用標簽lb8顯示結果,怎樣寫代碼呀,我改成char *str =edt1->Text;//這里我把它改成了用文本框了,不能運行
std::string result = str;//計算結果
std::sort(result.begin(),result.end());
std::string::iterator newlast = std::unique(result.begin(),result.end());
result.erase(newlast, result.end());
lbl8->Caption=result;
不能運行呀
uj5u.com熱心網友回復:
#include <string>
#include <algorithm>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::string result = Edit1->Text.c_str();
std::sort(result.begin(),result.end());
std::string::iterator newlast = std::unique(result.begin(),result.end());
result.erase(newlast, result.end());
Caption = result.c_str();
}
uj5u.com熱心網友回復:
樓上的代碼沒問題uj5u.com熱心網友回復:
如果要寫成一個自定義的函式怎樣寫呀,最好是能有中文說明一下轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/137571.html
標籤:基礎類
上一篇:附書光碟代碼求助
