このコードは本当に私を混乱させます、それはVector(配列)クラスのためにいくつかのStanfordライブラリを使用しています。誰かが理由を教えてもらえますか-'a int index = line [j] - 'a';
'?
void countLetters(string filename)
{
Vector<int> result;
ifstream in2;
in2.open(filename.c_str());
if (in.fail()) Error("Couldn't read '" + filename + "'");
for (int i = 0; i < ALPHABETH_SIZE; i++)
{
result.add(0); // Must initialize contents of array
}
string line;
while (true)
{
getLine(in, line);
// Check that we got a line
if (in.fail()) break;
line = ConvertToLowerCase(line);
for (int j = 0; j < line.length(); j++)
{
int index = line [j] - 'a';
if (index >= 0 && index < ALPHABETH_SIZE)
{
int prevTotal = result[index];
result[index] = prevTotal +1;
}
}
}
}
コードの目的:
ファイル名を取得し、アルファベットの各文字がそのファイルに表示される回数を出力します。印刷する数値は26あるため、CountLettersはVectorを作成する必要があります。たとえば、ファイルが次の場合: