標題說這一切 - 我的字符串將只由空格分隔的數字組成,例如, 1 0 3 0 4 0 7 0.我想要做的是刪除最常出現的字符,然後得到1 3 4 7.總是會有一個重複的數字。我試過,但它不僅能消除重複的,不是字符的實際發生:從字符串中刪除最頻繁的字符 - C++
string newString = "1 0 3 0 4 0 7 0";
sort(newString.begin(), newString.end());
newString.erase(unique(newString.begin(), newString.end()), newString.end());
我也試着遍歷由字符串字符,然後取出一個是大多數發生,但它不't work:
void countCharacters(const char n[], char count[])
{
int c = 0;
while (n[c] != '\0')
{
if (n[c] >= '0' && n[c] <= '9')
count[n[c] - '0']++;
}
}
void myFunction()
{
string newString = "1 0 3 0 4 0 7 0";
char count[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
const char *charString = newString.c_str();
countCharacters(charString, count);
for (unsigned int z = 0; z < strlen(charString); z++)
{
if (count[z] > 1)
{
newString.erase(remove(newString.begin(), newString.end(), count[z]), newString.end());
}
}
}
任何幫助將不勝感激! :)
謝謝您的快速回復!我其實已經想通了 - 我實現了我的功能來查找最經常出現的角色,但現在我又遇到了另一個問題:我忘記提及我的行可能是這樣的: – JavaNewb