我即將完成我的代碼!我可以使用一些幫助,我寫了一個程序來計算字符串中的字母數量。在輸出我的數據時,我的問題到了最後。說我輸入字符串 「AAAABBBC」字符頻率
我的期望輸出應該是 A-4 B-3 C-1
,而不是我得到 C-4 C-3 C-1
任何幫助,將不勝感激,我下面
#include <iostream>
using namespace std;
class moose
{
char inputbuffer[122];
char countbuffer[122];
long count;
short index = 0;
public:
char charcount();
char charinput();
char initialize();
};
int main()
{
moose obj;
obj.initialize();
obj.charinput();
obj.charcount();
system("pause");
}
char moose::initialize()
{
for (int i = 0; i < 122; i++)
countbuffer[i] = 0;
return 0;
}
char moose::charinput()
{
cout << "Enter your text and I'll read your characters" << endl;
cin.getline(inputbuffer, 132);
cin.gcount();
count = cin.gcount();
count--;
return 0;
}
char moose::charcount()
{
for (int i = 0; i < count; i++)
{
if (inputbuffer[i] >= 'a' & inputbuffer[i] <= 'z' || inputbuffer[i] >= 'A' & inputbuffer[i] <= 'Z' || inputbuffer[i] > '0' & inputbuffer[i] <= '9'){
index = inputbuffer[i];
countbuffer[index]++;
}
}
for (int i = 0; i <= 122; i++) {
if (countbuffer[i] > 0)
{
cout << char(index) << " - " << int(countbuffer[i]) << endl;
}
}
return 0;
}
使用正確的工具來解決這些問題是你的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
仔細閱讀最後一個循環中的變量名稱。 – molbdnilo
提高代碼的一般質量:如果方法不返回任何內容,請將void,couter(我猜)設置爲整數。使用常量122 etc –