Значит попытался переделать, но всё равно мелочи не дают алгоритму работать! ((
Задача заключается в обработке текстового файла, содержащего части слов. Некоторые части не являются слогами.
Общий алгоритм обработки:1. Первый алгоритм я реализовал более менее. Он делит слова в предложении на части, которые не все сразу являются слогами. Пример работы первого алгоритма:
Введённая строка: Привет Антон!
Обработанный и записанный результат в файл:
При // слог
ве // слог
т // не слог
А // не слог
нто // лишний символ буквы - 'н', слог - 'то'
н
// ....
2. Второй алгоритм я вам сейчас показываю. Проблемы с ним. Алгоритм выполняет проверку - последний символ прочитанной строки является-ли гласной буквой, если да, то вставить считанную часть слова в специальную строку. Компиляция кода проходит нормально, а при выполнении возникает исключение.
char * slog = new char [10];
int size_of_str_base,size_of_str_one_slog,pos_naydena,index,beg;
string Str_Base,Str_All_Slog;
bool Valid_Slog;
ifstream file_s_ne_slog("table_for_slog.txt");
index = strlen(Mas_Glasn);
Valid_Slog = false;
beg = 1;
while (!file_s_ne_slog.eof()) {
file_s_ne_slog >> slog;
size_of_str_base = strlen(slog);
MessageDlg(IntToStr(size_of_str_base), mtInformation, TMsgDlgButtons() << mbOK, NULL);
for (j = 0; j < index; j++) {
if (slog[size_of_str_base - 1] == Mas_Glasn[j]) {
Valid_Slog = true;
}
}
if (Valid_Slog) {
MessageDlg("Слог валиден!", mtInformation, TMsgDlgButtons() << mbOK, NULL);
Str_All_Slog.insert(beg,slog);
beg = beg + size_of_str_base - 1;
Str_All_Slog.insert(beg, " ");
beg = beg + 1;
Valid_Slog = false;
}
else continue;
}
file_s_ne_slog.close();
ofstream file_for_valid_slog("file_main_one.txt");
file_for_valid_slog << Str_All_Slog;
file_for_valid_slog.close();