Задача следующая:
Имеются символы, для каждого символа нужно посчитать n параметров (например, частоту нахождения в тексте, шифрограмму и т.д.).
Начать делать все через массивы и понял, что куча массивов chastota[N], cipher[N] ... (где N у каждого из массива должна относиться к одной и той же букве) не есть хорошо.
Наткнулся на сложные структуры (struct, union и т.д.) - вроде то, что мне нужно: для каждой буквы создаем свою структуру и храним в ней все параметры, но появилась проблема.
Например, так мы объявляем структуру:
struct character
{
char character; // символ
float probability; // частота
int cipher; // шифрограмма
};
Далее я считываю из файла строку, получаю алфавит сообщения (список букв без повторений), и далее по сути я должен для каждой буквы полученного алфавита создать экземпляр (?это так называется?) структуры. Делаю это так:
for (int i = 0; i < alphabetSize; i++) {
struct character character[i];
}
, где alphabetSize - длинна алфавита
Но выдает ошибку - i должно иметь контактное выражение.
Исходя из этого, несколько вопросов:
1. Как сделать так, чтобы каждая буква имела свою структуру (для i-ой буквы структура - character[i])
2. А для подобного ли придуманы структуры? Просто знаком в какой-то степени с PHP и его ООП, где мы просто создаем экземпляр объекта и используем. Это то же самое?