Назад Вперед Зміст


Задачі з рядками

Приклад 1

Дано текстовий файл 1.txt, що містить російський текст. Переписати з цього файлу до файлу 2.txt усі рядки, довжина яких більша за 11.

Спосіб 1 (з перекодуванням)

Це завдання виконується за таким планом:

  1. За допомогою програми «Блокнот» створити текстовий файл 1.txt у кодуванні ANSI. Зберегти у папці bin\Debug.

    Файл повинен містити рядки різної довжини: більше 11 символів і менше. Наприклад:

  2. Скласти програму, яка виконує дію за умовою:
    static void Main(string[] args)
    {
        // Створення об'єкта для читання файлу
        // Файл у кодуванні Windows-1251 (кирилиця)
        StreamReader f1 = new StreamReader("1.txt", Encoding.GetEncoding(1251));
        
        // Створення об'єкта для запису у файл
        // Запис у кодуванні Windows-1251 (кирилиця)
        // Параметр false означає перезапис файлу (не додавання)
        StreamWriter f2 = new StreamWriter("2.txt", false, Encoding.GetEncoding(1251));
        
        string s;        // Змінна для зберігання рядка
        int L = 0;       // Змінна для довжини рядка
        
        // Читання рядків поки не досягнемо кінця файлу
        while (f1.EndOfStream != true)
        {
            // Читання поточного рядка
            s = f1.ReadLine();
            
            // Визначення довжини рядка
            L = s.Length;
            
            // Якщо довжина рядка більша за 11 символів - запис у новий файл
            if (L > 11) f2.WriteLine(s);
        }
        
        // Закриття файлових потоків
        f1.Close();
        f2.Close();
        
        // Очікування натискання клавіші перед завершенням
        Console.ReadKey();
    }
    
    
  3. Програма нічого не виведе на екран. Результат у файлі 2.txt (у тій самій папці). Кодування файлу — ANSI.

Спосіб 2 (без перекодування)

  1. Зберегти файл 1.txt у кодуванні UTF-8:

  2. При читанні перекодування не потрібне, вихідний файл 2.txt також буде у кодуванні UTF-8.
    static void Main(string[] args) 
    {
        // Створення об'єкта для читання файлу
        // Використовується кодування UTF-8 за замовчуванням
        StreamReader f1 = new StreamReader("1.txt");
        
        // Створення об'єкта для запису у файл
        // Використовується кодування UTF-8 за замовчуванням
        StreamWriter f2 = new StreamWriter("2.txt");
        
        string s;        // Змінна для зберігання рядка
        int L = 0;       // Змінна для довжини рядка
        
        // Читання рядків поки не досягнемо кінця файлу
        while (!f1.EndOfStream)  // Виправлено помилку (findOfStream → EndOfStream)
        {
            // Читання поточного рядка
            s = f1.ReadLine();
            
            // Визначення довжини рядка
            L = s.Length;
            
            // Якщо довжина рядка більша за 11 символів - запис у новий файл
            if (L > 11) 
            {
                f2.WriteLine(s);
            }
        }
        
        // Закриття файлових потоків
        f1.Close();
        f2.Close();
        
        // Очікування натискання клавіші перед завершенням
        Console.ReadKey();
    }
    
    
  3. Вихідний файл у кодуванні UTF-8:

Приклад 2

Дано текстовий файл 1.txt. Переписати в 2.txt усі рядки таким чином: код кожного символу збільшити на 1.

  1. Створити файл 1.txt у кодуванні UTF-8:

  2. Написати програму:
    static void Main(string[] args)
    {
        // Читання файлу у кодуванні UTF-8
        StreamReader f1 = new StreamReader("1.txt");
        
        // Запис файлу у кодуванні UTF-8
        StreamWriter f2 = new StreamWriter("2.txt");
        
        string s1, s2;  // s1 - вхідний рядок, s2 - перетворений рядок
        int L = 0, i, k; // L - довжина рядка, i - лічильник, k - код символу
        
        // Читання файлу до кінця
        while (!f1.EndOfStream)
        {
            // Читання рядка
            s1 = f1.ReadLine();
            
            // Отримання довжини рядка та ініціалізація s2
            L = s1.Length;
            s2 = "";
            
            // Обробка кожного символу рядка
            for (i = 0; i < L; i++)
            {
                // Отримання коду символу та його збільшення на 1
                k = (int)s1[i];
                k++;
                
                // Додавання перетвореного символу до нового рядка
                s2 = s2 + (char)k;
            }
            
            // Запис перетвореного рядка у вихідний файл
            f2.WriteLine(s2);
        }
        
        // Закриття файлів
        f1.Close();
        f2.Close();
        
        // Очікування натискання клавіші
        Console.ReadKey();
    }
    
    
  3. Результат переглянути у файлі 2.txt:

Приклад 3

Дано два текстові файли 1.txt і 2.txt. Створити 3.txt таким чином: перша половина — з 1.txt, друга — з 2.txt.

  1. Створити файли 1.txt та 2.txt у папці bin\Debug:

  2. Скласти програму:
    static void Main(string[] args)
    {
        // Відкриття файлів для читання та запису
        StreamReader f1 = new StreamReader("1.txt");  // Перший вхідний файл
        StreamReader f2 = new StreamReader("2.txt");  // Другий вхідний файл
        StreamWriter f3 = new StreamWriter("3.txt");  // Вихідний файл
    
        string s;      // Змінна для зберігання рядка
        int i;         // Лічильник
        int k1 = 0;    // Лічильник рядків у першому файлі
        int k2 = 0;    // Лічильник рядків у другому файлі
    
        // Підрахунок кількості рядків у першому файлі
        while (!f1.EndOfStream)
        {
            s = f1.ReadLine();
            k1++;
        }
    
        // Підрахунок кількості рядків у другому файлі
        while (!f2.EndOfStream)
        {
            s = f2.ReadLine();
            k2++;
        }
    
        // Закриття файлів
        f1.Close();
        f2.Close();
    
        // Визначення кількості рядків у половині кожного файлу
        k1 = k1 / 2;
        k2 = k2 / 2;
    
        // Відкриття першого файлу знову для читання з початку
        StreamReader f11 = new StreamReader("1.txt");
    
        // Читання та запис першої половини першого файлу
        for (i = 1; i <= k1; i++)
        {
            s = f11.ReadLine();
            f3.WriteLine(s);  // Запис у вихідний файл
        }
    
        // Відкриття другого файлу знову для читання з початку
        StreamReader f22 = new StreamReader("2.txt");
    
        // Пропуск першої половини другого файлу
        for (i = 1; i <= k2; i++)
        {
            s = f22.ReadLine();
        }
    
        // Читання та запис другої половини другого файлу
        while (!f22.EndOfStream)
        {
            s = f22.ReadLine();
            f3.WriteLine(s);  // Запис у вихідний файл
        }
    
        // Закриття всіх файлів
        f11.Close();
        f22.Close();
        f3.Close();
    
        // Очікування натискання клавіші
        Console.ReadKey();
    }
    
    
  3. Результат — файл 3.txt:

Варіанти задач

Варіант 1

  1. Дано файл 1.txt. Переписати в 2.txt усі рядки, крім третього.
  2. Дано файл 1.txt. Переписати всі рядки, додаючи на початок кожного рядка символ "*".
  3. Дано файл 1.txt. Усі літери "c" замінити на "d" та записати в 2.txt.
  4. Дано два файли 1.txt і 2.txt. Створити 3.txt, записавши спочатку всі рядки з 1.txt, потім з 2.txt.

Варіант 2

  1. Дано файл 1.txt. Переписати рядки з 3-го по 6-й у 2.txt.
  2. Дано файл 1.txt. До кожного рядка додати в кінці "!!!" та записати у 2.txt.
  3. Ввести з клавіатури два символи. З 1.txt у 2.txt переписати рядки, замінюючи всі входження першого символа на другий.
  4. Дано два файли. У 3.txt спочатку записати вміст 2.txt, потім — 1.txt.

Варіант 3

  1. Ввести з клавіатури число K. У 2.txt записати всі рядки з 1.txt, крім K-го.
  2. Додати до кожного рядка 1.txt символи «-» на початку і в кінці. Записати в 2.txt.
  3. Усі пробіли у рядках 1.txt замінити на підкреслення та зберегти у 2.txt.
  4. Ввести число n. У 3.txt записати n рядків з 1.txt, а потім усі рядки з 2.txt. Якщо n більше за кількість рядків — скопіювати всі.

4 варіант

  1. Дано текстовий файл 1.txt. Ввести з клавіатури числа s1 і s2. Переписати з цього файлу у файл 2.txt усі рядки з s1-го по s2-й.
  2. Дано текстовий файл 1.txt. Ввести з клавіатури два будь-які символи. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи на початок рядка перший символ і додаючи в кінець рядка другий символ.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: усі голосні англійські літери замінити на знак підкреслення.
  4. Дано два текстові файли 1.txt і 2.txt. Ввести з клавіатури ціле число n. Створити файл 3.txt таким чином: спочатку переписати усі рядки з файлу 1.txt, потім n рядків з файлу 2.txt. Якщо n більше, ніж кількість рядків у файлі, то переписати всі рядки.

5 варіант

  1. Дано текстовий файл 1.txt. Ввести з клавіатури число M. Переписати з цього файлу у файл 2.txt усі рядки, довжина яких менша за M.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, додаючи на початок кожного рядка символ «+», якщо рядок починається з символу «С», і символ «*» в інших випадках.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: усі великі англійські літери перетворити на малі.
  4. Дано два текстові файли 1.txt і 2.txt. Ввести з клавіатури ціле число n. Створити файл 3.txt таким чином: спочатку n рядків з файлу 1.txt, потім n рядків з файлу 2.txt. Якщо n більше, ніж кількість рядків у файлі, то переписати всі рядки.

6 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, крім порожніх (із довжиною 0).
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, додаючи в кінці кожного рядка символ "*", якщо рядок закінчується на символ «;».
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: усі малі російські літери перетворити на великі.
  4. Дано два текстові файли 1.txt і 2.txt. Ввести з клавіатури ціле число n. Створити файл 3.txt таким чином: спочатку переписати n рядків з файлу 1.txt, потім n рядків з файлу 2.txt. На початок кожного рядка файлу 3.txt додати номер рядка. Якщо n більше, ніж кількість рядків у файлі, то переписати всі рядки.

7 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що починаються на літеру «к».
  2. Дано текстовий файл 1.txt. Ввести з клавіатури будь-який символ. Переписати з цього файлу у файл 2.txt усі рядки, причому, якщо рядок не закінчується на введений символ, додати його в кінець рядка.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: усі великі англійські літери перетворити на малі, а всі малі англійські літери перетворити на великі.
  4. Дано два текстові файли 1.txt і 2.txt. Ввести з клавіатури ціле число n. Створити файл 3.txt таким чином: кожен рядок третього файлу дорівнює сумі перших n символів відповідних рядків першого і другого файлів. Якщо n більше, ніж кількість символів у рядку, то додавати увесь рядок. Якщо перший і другий файли мають різну кількість рядків, то наприкінці записуються перші n символів рядків лише одного файлу.

8 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що закінчуються на крапку «.».
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, причому, якщо рядок починається і закінчується на однакові літери, додати в кінець рядка символ «!».
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: якщо довжина рядка більша за 10, переписуються лише перші 10 символів рядка, якщо менша або дорівнює 10, то рядок переписується повністю.
  4. Дано два текстові файли 1.txt і 2.txt. Ввести з клавіатури ціле число n. Створити файл 3.txt таким чином: кожен рядок третього файлу дорівнює сумі перших n символів відповідних рядків першого і другого файлів. Якщо n більше, ніж кількість символів у рядку, то додавати увесь рядок. В кінці кожного рядка файлу 3.txt додати номер рядка. Якщо перший і другий файли мають різну кількість рядків, то наприкінці записуються перші n символів рядків лише одного файлу.

9 варіант

  1. Дано текстовий файл 1.txt. Ввести з клавіатури будь-який символ. Переписати з цього файлу у файл 2.txt усі рядки, що починаються і закінчуються на цей символ.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки. Якщо рядок починається з малої російської літери, перетворити цю літеру на велику.
  3. Дано текстовий файл 1.txt і число К. Переписати з цього файлу у файл 2.txt усі рядки, видаляючи з початку кожного рядка К символів (якщо довжина рядка менша за К, записати замість цього рядка порожній рядок).
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: рядок з файлу 1.txt, рядок з файлу 2.txt, рядок з файлу 1.txt, рядок з файлу 2.txt і так далі.

10 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що починаються і закінчуються на однакові символи.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки. Якщо рядок закінчується на цифру, додати на початок рядка символ «+», а в кінець символ "="; в інших випадках нічого не додавати.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: прибрати всі пробіли.
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: рядок з файлу 1.txt, рядок з файлу 2.txt, рядок з файлу 1.txt, рядок з файлу 2.txt і так далі. На початок кожного рядка файлу 3.txt вставити номер рядка.

11 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що починаються з великої російської літери.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи в кінець кожного рядка його порядковий номер.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: розрідити символи пробілами (після кожного символу додати пробіл).
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: спочатку з файлу 1.txt переписуються рядки, що починаються з великої англійської літери, потім з файлу 2.txt переписуються рядки, що починаються з великої англійської літери, потім з файлу 1.txt переписуються усі інші рядки, і з файлу 2.txt переписуються усі інші рядки.

12 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що закінчуються на цифру.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи після кожного рядка порожній рядок.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: прибрати зайві пробіли (не може бути двох, трьох і більше пробілів поспіль).
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: спочатку з файлу 1.txt переписуються рядки, які закінчуються на крапку, потім з файлу 2.txt переписуються рядки, які закінчуються на крапку, потім з файлу 1.txt переписуються усі інші рядки, і з файлу 2.txt переписуються усі інші рядки.

13 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що починаються з малої англійської літери.
  2. Дано текстовий файл 1.txt і рядок S. Переписати з цього файлу у файл 2.txt усі рядки, додавши рядок S на початок і в кінець нового файлу.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: зашифрувати їх, виконавши циклічну заміну кожної літери на наступну в алфавіті, зберігаючи регістр літер ("А" перетвориться в "B", "B" в "C", "z" в "a" і так далі). Символи, які не є літерами, не змінювати.
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: спочатку з файлу 1.txt переписуються рядки, що починаються з цифри, потім з файлу 2.txt переписуються рядки, що починаються з цифри, потім з файлу 1.txt переписуються усі інші рядки, і з файлу 2.txt переписуються усі інші рядки.

14 варіант

  1. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, що починаються і закінчуються на цифру.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки. Якщо рядок починається з малої англійської літери, перетворити цю літеру на велику.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: замінити російську літеру відповідною англійською (брати не всі російські літери, а лише ті, які можна замінити іншою англійською літерою, наприклад «абвгдежзиклмнопрст»).
  4. Дано два текстові файли 1.txt і 2.txt. У файлах мають бути цифри і літери. Створити файл 3.txt таким чином: спочатку з усіх рядків файлу 1.txt переписуються цифри, потім з усіх рядків файлу 2.txt переписуються цифри. Тобто у файлі 3.txt у кожному рядку будуть лише цифри.

15 варіант

  1. Дано два текстові файли 1.txt і 2.txt. Переписати у файл 3.txt спочатку рядки з файлу 1.txt, а потім рядки з файлу 2.txt.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи перед 3-ю, 4-ю та 7-ю рядками рядок з 10 мінусів.
  3. Дано текстовий файл 1.txt. Ввести з клавіатури число К. Переписати з цього файлу у файл 2.txt усі рядки таким чином: зашифрувати кожен рядок, виконавши циклічну заміну кожної літери на літеру того ж регістру, розташовану в алфавіті на К-му місці після літери, що шифрується. Наприклад, для К = 2 "А" перетвориться в "C", "B" в "D", "z" в "b" і так далі. Символи, які не є літерами, не змінювати.
  4. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: спочатку з файлу 1.txt переписуються рядки, які закінчуються на кому, потім з файлу 2.txt переписуються рядки, які закінчуються на кому, потім з файлу 1.txt переписуються усі інші рядки, і з файлу 2.txt переписуються усі інші рядки.

16 варіант

  1. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: кожен рядок третього файлу дорівнює сумі відповідних рядків першого і другого файлів. Якщо перший і другий файли мають різну кількість рядків, то наприкінці записуються рядки лише одного файлу.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи перед рядками, які закінчуються на цифру, порожній рядок.
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: перевести кожен рядок з російської мови на тарабарську (глухий приголосний замінити на дзвінкий і навпаки). Наприклад:
    Сьогодні школяр, завтра академік Російською Зекотня жгольниг, сафдра агатемиг Тарабарською 
  4. Дано два текстові файли 1.txt і 2.txt. У файлах мають бути цифри і літери. Створити файл 3.txt таким чином: спочатку з усіх рядків файлу 1.txt переписуються лише літери, потім з усіх рядків файлу 2.txt переписуються літери. Тобто у файлі 3.txt у кожному рядку будуть лише літери.

17 варіант

  1. Дано два текстові файли 1.txt і 2.txt. Створити файл 3.txt таким чином: кожен рядок третього файлу дорівнює найдовшому з відповідних рядків першого і другого файлів. Якщо відповідні рядки обох файлів мають однакову довжину, вибрати рядок з файлу 1.txt. Якщо перший і другий файли мають різну кількість рядків, то наприкінці записуються рядки лише одного файлу.
  2. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки, вставляючи перед рядками, які починаються і закінчуються на цифру, рядок з 10 «*».
  3. Дано текстовий файл 1.txt. Переписати з цього файлу у файл 2.txt усі рядки таким чином: усі цифри замінити словами.
  4. Дано текстовий файл 1.txt. У файлі мають бути цифри і літери. Створити файли 2.txt і 3.txt таким чином: з кожного рядка файлу 1.txt у файл 2.txt переписуються лише літери, а у файл 3.txt — лише цифри.

Назад Вперед Зміст