Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int main ()
- {
- char st1 [255], st2[255], s, ch;
- string word, stroke;
- bool WriteTrue = 0, Fail = 0;
- cout << "Введите первую строчку: ";
- cin.getline (st1, 255); // Записываем всю строку с учетом пробелов
- {
- ofstream Fout ("first.txt");
- Fout << st1; // Записываем первую строку в файл first.txt
- Fout.close ();
- }
- cout << "\nВведите вторую строчку: ";
- cin.getline (st2, 255); // Записываем всю строку с учетом пробелов
- {
- ofstream Fout ("st2.txt");
- Fout << st2; // Записываем вторую строку в файл st2.txt
- Fout.close ();
- }
- {
- ifstream f ("st2.txt");
- ofstream Fout ("second.txt");
- while (f >> s)
- Fout << s;
- Fout.close ();
- f.close ();
- } // Это нам нужно для избавления от пробелов во всей строке
- {
- ofstream Fout ("answer.txt");
- Fout << ""; // Очищаем файл для следующих запусков программ
- Fout.close ();
- }
- ifstream f ("second.txt");
- while (f >> word) // Считываем файл по 1 слову, пока слова в файле не закончатся
- {
- ofstream Write ("word.txt");
- Write << word; // Записываем считанное слово в файл word.txt
- Write.close ();
- ifstream Read ("word.txt");
- while (Read >> s) // Считываем записанное слово по 1 символу, пока символы в слове не закончатся
- {
- ofstream Write ("answer.txt", ios::app); // Записываем в файл символы без перезаписи файла (каждый раз символы дописываются в файл)
- ifstream Read ("first.txt");
- while (Read >> ch) // Считываем по символьно файл first.txt, пока символы в файле не закончатся, или пока не сработает break
- {
- if (ch == s) // Если нашли нужный нам символ
- {
- Write << ch;
- break; // то останавливаем цикл
- }
- }
- Read.close ();
- Write.close ();
- { // Начала перезаписи исходной строки
- ofstream Write ("text.txt");
- ifstream Read ("first.txt");
- while (Read >> ch)
- {
- if (ch == s && WriteTrue)
- Write << ch;
- else if (ch == s && !WriteTrue)
- WriteTrue = 1;
- if (ch != s)
- Write << ch;
- }
- Read.close ();
- Write.close ();
- }
- WriteTrue = 0;
- {
- ifstream Read ("text.txt");
- Read >> word;
- Read.close ();
- ofstream Write ("first.txt");
- Write << word;
- Write.close ();
- // Конец перезаписи исходной строки
- } // То что выше - перезаписываем файл first.txt таким образом, чтобы использованный нами символ до этого удалился
- }
- }
- f.close ();
- {
- ifstream f ("second.txt");
- f >> stroke; // Считываем вторую строчку
- f.close ();
- {
- ifstream Read ("answer.txt");
- Read >> word; // Считываем итоговое слово, которое мы получили, посимвольно записывая в файл
- Read.close ();
- }
- if (stroke != word) // Если вторая строка не индеентична с итоговым словом,
- Fail = 1; // то это фейл, сборка невмозножна
- }
- cout << "Строку < " << st2 << " > ";
- if (Fail) // Fail == 1
- cout << "невозможно";
- else // Fail == 0 (по умолчанию)
- cout << "возможно";
- cout << " собрать из символов первой строки.\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement