Я новичок в C++, что я пытаюсь сделать, это подсчитать количество раз, когда письмо встречается с фрагментом текста или абзаца и хранит его в массиве, называемом частотным массивом.Count Вхождения в цикле for C++
Код ниже работает в определенной степени, что происходит, если пользователь вводит hello frequencyarray сохраняет 11121, если пользователь набирает частотный массив aaba, хранит 1213 . Я не хочу, чтобы общая сумма я хотел, чтобы массив магазин 1121 и 31. поэтому, если появляется одна и та же буква, она добавляет 1 к массиву.
Благодаря Дэвид
#include <iostream> //for cout cin
#include <string> //for strings
#include <fstream> //for files
using namespace std;
int main()
{
string text;
int frequencyarray [26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
cout << "Enter Word: ";
cin >> text;
//***************************COUNT OCCURANCES************************
for (int i(0); i < text.length(); i++)
{
char c = text[i];
c = toupper(c);
c -= 65;
if (c < 26 || c >=0)
{
frequencyarray[c]++;
cout << frequencyarray[c];
}
}
system ("pause");
return(0);
}`
Не проблема, что вы outputing содержимое массива в цикле? В первый раз, когда вы найдете письмо «a», тогда 1 будет напечатано в следующий раз 2 и так далее. Дамп массива вне цикла, и вы получите правильный результат. – Cyclonecode
Вы также должны использовать '&&' в if-statement. Прямо сейчас * все * персонажи будут квалифицироваться. –
Вы также можете использовать 'c - = 'A';' вместо константы '65'. – Slagh