回答
使用地圖...選擇自己是否要照顧大/小寫和標點符號/其他符號。
#include <map>
#include <iostream>
using namespace std;
int main() {
string word = "MISSISSIPPI";
map<char,int> charCount;
for (unsigned int i=0; i<word.size(); i++)
charCount[word[i]]++;
for (map<char, int>::iterator it = charCount.begin(); it != charCount.end(); ++it)
cout << it->first << ": " << it->second << endl;
return 0;
}
由於這幾乎肯定是功課,我只會給出整體的圖片。
當然,創建一個向量,每個可能的字母之一(因爲你說英語,可能26位置矢量就足夠了)。初始化所有位置爲零。
對整個字符串運行,對於每個字母,將每個位置添加一個與您正在讀取的字符串位置中的字母對應的向量。例如,如果您正在閱讀「a」,請將1加到第一個位置。對於'b',總計1到第二個位置,依此類推。請注意,你不應該在乎大寫字母和小寫字母。
達到了字符串的結尾嗎?精細。現在遍歷矢量並顯示每個非零位置的計數。你可以把相應的字母放在一邊。
請記住,所有簡單字母都是ASCII/Latin1/UTF- *中的字母順序,所以'a'會給你相應字母的編號。 (x - 'a')會給你在向量中的字母位置。不要好奇哪個確切的價值,這不會是便攜式的。
我想你可以嘗試這樣的事:
#include <iostream>
#include <cstring>
int main()
{
const int N = 26;//number of characters in the alphabet
int count[N];
char *str = "MISSISSIPPI";
for (int i = 0; i < N; i++) count[i] = 0;
for (int i = 0; i < strlen(str); i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
++count[str[i]-'a'];
else if (str[i] >= 'A' && str[i] <= 'Z')
++count[str[i] - 'A'];
}
for (int i = 0; i < N; i++)
cout << (char)('a'+i) << " - " << count[i];
return 0;
}
如果字符串包含除A..Z以外的任何字符,則失敗嚴重a..z –
您可能創建一個由256個元素組成的數組 –
是的,您可以 - 或者您可以使用'ctypes.h'中的'isalpha()'在嘗試更新直方圖之前檢查您的角色。就像它雖然代碼不是一個很好的編程示例。 –
- 1. Javascript重複字母X次數
- 2. 用一個字母替換字符串中每個重複字母的腳本
- 3. 重複兩個字符串,每個字符固定次數
- 4. 每個JSON字段在數組中重複的次數php
- 5. replaceFirst的重複字符串的每一個字母被修改
- 6. Angular + Requirejs - 每個數據重複兩次?
- 7. 計算字符串中每個字母的出現次數
- 8. 爲每個字母點擊一次
- 9. C#計數每個大寫字母和每個小寫字母
- 10. 重複的唯一ID向每個ID添加字母
- 11. 重複N次字符串中的每個字符
- 12. 查找字母中每個字母出現次數最多的單詞
- 13. 重複字母(乘)
- 14. 如何混合兩個字符串中的字母,依次爲每個字母
- 15. 我想每次打字時都會顯示一個字母,然後每按一次就移動一個字母
- 16. 如何每次更換一個字符重複一次字符串N次?
- 17. Vb.net的sendkeys,字母重複?
- 18. 根據重複次數選擇行,按字母順序排列
- 19. 打印陣列中的每個數字及其重複的次數
- 20. 每個符號重複多少次
- 21. 計算每個值在數組中重複的次數
- 22. 計算每個單詞在一個字符串中重複的次數?
- 23. 每個字母C#
- 24. 做一個重複的字母數字列表
- 25. 獲取字符串中的每個字母只有一次
- 26. 如何只打印一次字符串中的每個字母
- 27. 查找字母組合的數量,使每個字母等於一個數字
- 28. 如何在一段文字中重複每個單獨的字母?在Java中
- 29. Java:每次顯示一個字母時如何計算一次
- 30. 列表和計數重複字母
爲什麼地圖?矢量應該足夠了 – skywall
那麼,矢量也應該工作得很好,我只是喜歡地圖,然後他不必處理放在哪裏。它會爲他安排一切。 – Martol1ni
你不需要'if/else',因爲當你訪問索引時,它會被創建並默認初始化(到'0')。所以'charCount [c] ++'就夠了。 – Default