#include <iostream>
using namespace std;
int countLetters(char text[], char letter);
int main()
{
char letter;
cout << "Enter a letter: ";
cin >> letter;
cin.ignore();
char text[1024];
cout << "Enter text: ";
cin.getline(text, 1024);
int letterCount = countLetters(text, letter);
cout << "Number of '" << letter << "'s: " << letterCount << endl;
return 0;
}
int countLetters(char text[], char letter)
{
int letterCount = 0;
for (int i = 0; i <= text[i]; i++)
{
if (letter == text[i])
letterCount++;
}
return letterCount;
}
這段代碼的寫法是爲了讓用戶首先詢問他們想要在一行文本中搜索的字母。其次,它會要求用戶輸入他們想要搜索的文本行。最後,它會吐出他們輸入的特定文本行中有多少個字母。元素計數問題
我的具體錯誤在於:當用戶在「CS 124 - 軟件開發簡介」中詢問'e'時,程序只聲明有一個'e'。我不確定什麼是錯誤的,因爲當你運行程序並輸入'o'而要求搜索完全相同的文本行時,你會得到正確數量的'o'值返回,4. 任何關於我的想法錯誤是爲什麼它在搜索'e'時出現問題?
你'for'條件是錯誤的,'for'循環應該繼續,直到它是不太等於'文本''長度不是'text [i]'的值。既然這是C++,你應該使用'string's而不是字符數組,爲什麼要讓它更難? –
什麼是我應該測試的文本? –
嘿傢伙,謝謝你的提示!我建立在Jonathan Wakely和Jonny Henly的建議之上,並且在字母計數函數中,我將「for(int i = 0; i <= text [i]; i ++)」改爲「for(int i = 0; text [i]; i ++),代碼現在適用於「CS 124 - 引入軟件開發」並計算e's! – Jeffery