Форум программистов, компьютерный форум CyberForum.ru

Чередование гласных в корнях лаг/лож и раст/ращ/рос + искл - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Lyoha_B
 Аватар для Lyoha_B
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 3
17.03.2013, 18:34     Чередование гласных в корнях лаг/лож и раст/ращ/рос + искл #1
Здравствуйте, у меня проблема с написанием программы на C++, которая
1) просит ввести несколько слов с неправильно написанными слова с чередованиями лаг/лож и раст/ращ/рос
2) выводит эти слова в файл и считывает их оттуда
3) дальше исправляет ошибки в корнях в соответствии с правилами
4) форматирует эти слова по принципу есть ли в начале слова приставка или нет, и тоже это выводит в файл.

то есть в файл должны быть выведены слова исправленные + в начале те, которые без приставки, а потом те, которые с приставкой.

часть написана

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <fstream>
#include <string>
 
 
using namespace std;
 
int main ()
 
{   setlocale(LC_ALL, "Russian");
    
    char a[255], b [255], c [255];
 
    cout << "Введите первую строку" << endl; cin.getline(a,sizeof(a));
    cout << "Введите вторую строку" << endl; cin.getline(b,sizeof(b));
    cout << "Введите третью строку" << endl; cin.getline(c,sizeof(c));
    
    ofstream outfile("WORDS.TXT"); //начало работы с файлом
    outfile << a << endl;
    outfile << b << endl;
    outfile << c << endl;
    outfile.close(); //закрытие файла
    
    for (int i = 0; i <= 255; i++)  //очистка значений переменный 
    {a[i] = *""; b[i] = *""; c[i] = *"";}
 
    ifstream infile ("WORDS.TXT"); //вновь открываем файл
    infile.getline(a,sizeof(a));   // считывание строчки в переменную a
    infile.getline(b,sizeof(b));   // считывание строчки в переменную b
    infile.getline(c,sizeof(c));   // считывание строчки в переменную c
но вот проблемы начинаются тогда, когда идёт вся эта штука с правилами. я это думал сделать как-то так

C++
1
2
3
4
5
6
    for (int i = 0; a[i] != *""; i++ )
    {  
    const string rule1 = "полог";
    char rule1_1[255];
 
    strcpy (rule1_1, rule1.c_str() );
то есть ввести некоторые слова, которые являются исключениями из правил, а дальше во всех остальных словах должно оставаться чередование обычным. только я не знаю, как сделать это =\
то есть не должно быть "лог" а должно быть "лаг" и не должно быть "лаж", а только "лож"...
и про приставку в начале и форматирование согласно с ней - не совсем представляю как сделать.

я так буду благодарен за помощь =\
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 18:34     Чередование гласных в корнях лаг/лож и раст/ращ/рос + искл
Посмотрите здесь:

C++ Проверить, существует ли строгое чередование 0 и 1 в массиве
C++ Чередование знаков
C++ Чередование символов в строке
Чередование знаков -+-+-+ C++
Сформировать случайным образом массив X(N), элементами которого могут быть только 0 и 1. Проверить, существует ли строгое чередование 0 и 1 C++
С клавиатуры вводятся массив целых чисел. Проверить наблюдается ли в массиве чередование положительных и отрицательных элементов C++
C++ Целочисленные массивы: чередование минимального и максимального элементов
В американской армии считается несчастливым число 13, а в японской — 4. Перед международными учениями штаб рос C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru