Зміст

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

Приклад 1

Ввести з клавіатури рядок. Замінити у цьому рядку всі літери «а» на пробіли.

Програма

#include <iostream>
using namespace std;
#include <string>

using namespace std;

int main()
{
    string str;
    cout << "Введіть рядок: ";
    getline(cin, str);

    for (int i = 0; i<str.length(); i++)
    {
        if (str[i] == 'a')  // латинська 'a'
        {
            str[i] = ' ';
        }
    }

    cout << "Результат: " << str << endl;
    return 0;
}

Результат роботи програми

Приклад 2

Ввести з клавіатури рядок та символ. Замінити у цьому рядку всі входження введеного символу на пробіли.

#include <iostream>
#include <string>
using namespace std;

 string str;
    char ch;

    // Вводимо латинський символ (не кириличний!)
    cout<< "Введіть символ (латинський): ";
    cin>> ch;
    cin.ignore();

    cout << "Введіть рядок: ";
    getline(cin, str);

    cout << "Замінюємо " << ch << "' на пробіли..." << endl;

    for (char &c : str)
    {
        if (c == ch)
            c = ' ';
    }

    cout << "Результат: " << str << endl;

    return 0;
}

Результат роботи програми

Приклад 3

Ввести з клавіатури рядок. Замінити до першої коми усі літери "а" на пробіли. Якщо ком немає, то вивести повідомлення.

Програма

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;

    cout << "Рядок: ";
    getline(cin, str);

    // Знаходимо позицію першої коми
    size_t p = str.find(',');
    //Статична константа string::npos:-член класу std::string використовується: для індикації, що пошук не дав результатів
    if (p != string::npos)  // якщо кома знайдена
    {
        // Замінюємо всі 'а' на пробіли до першої коми
        for (int i = 0; i < p; i++)
        {
            if (str[i] == 'a')  // тільки літеру 'a'
            {
                str[i] = ' ';
            }
        }

        // Виводимо змінений рядок
        cout << str << endl;
    }
    else
    {
        cout << "нема ком" << endl;
    }

    return 0;
}

Результат роботи програми

Приклад 4

Ввести з клавіатури рядок. Замінити у ньому усі цифри на пробіли.

Програма

#include <iostream>
#include <string>
#include <cctype>
using namespace std;

int main()
{
    string str;
    getline(cin, str);

    for (auto &c : str)  // auto сам визначить тип
    {
        if (isdigit(c))
            c = ' ';
    }

    cout << str;
    return 0;
}

Результат роботи програми

Приклад 5

Ввести з клавіатури рядок. Видалити у ньому усі літери «а».

#include <iostream>
using namespace std;
#include <string>

int main()
{
    string s1, s2;
    int i, L;
    getline(cin, s1);
    L=s1.length();
    for (int i=0; i<L; i++)
    {
        if (s1[i]!='a') {s2=s2+s1[i];}
    }
    cout << s2;
    return 0;
}

Програма (2-й варіант). Видаляємо за допомогою функцій:

#include <iostream>
using namespace std;
#include <string>

int main()
{
    string str;
    int i, L, p;
    getline(cin, str);
    p=str.find("a");
    while (p!=-1)
    {
        str.erase(p, 1);
        p=str.find("a");
    }
    cout << str;
    return 0;
}

Результат роботи програми

Приклад 6

Ввести з клавіатури рядок. Видалити у ньому усі цифри.

Програма. Створюємо новий рядок:

#include <iostream>
using namespace std;
#include <string>

int main()
{
    string s1, s2="";
    int i, L;
    getline(cin, s1);
    L=s1.length();
    for (int i=0; i<L; i++)
    {
        if (!isdigit(s1[i])) {s2=s2+s1[i];}
    }
    cout << s2;
    return 0;
}

Результат роботи програми

Приклад 7

Ввести з клавіатури рядок. Вставити пробіл перед кожною літерою “а”

Програма

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s1, s2 = "";
    getline(cin, s1);

    for (int i = 0; i < s1.length(); i++)
    {
        if (s1[i] == 'a') {
            s2 = s2 + ' ';        // Додаємо пробіл перед 'а'
        }
        s2 = s2 + s1[i];
    }

    cout << s2;
    return 0;
}

Результат роботи програми

Варіанти завдань

Варіант 1

  1. Ввести з клавіатури рядок str і два символи symv1 та symv2. Замінити всі символи symv1 на symv2.
  2. Ввести з клавіатури рядок str. Видалити в цьому рядку всі пробіли, починаючи з початку рядка до першої точки. Якщо точок у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str. Після кожного символу цього рядка вставити пробіл.

Варіант 2

  1. Ввести з клавіатури три рядки: str, str1 та str2. Замінити у рядку str усі входження str1 на str2.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі літери.
  3. Ввести з клавіатури рядок str. Вставити «0» у рядок str після кожного пробілу у першій половині рядка.

Варіант 3

  1. Ввести з клавіатури рядок. Замінити у цьому рядку всі пробіли на «*» від початку рядка до останньої точки. Якщо точок у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок. Видалити з неї всі входження першого символу.
  3. Ввести з клавіатури рядок str. Подвоїти кожен символ цього рядка.

Варіант 4

  1. Ввести з клавіатури рядок. Замінити у цьому рядку всі входження «ох» на «ха» від першого пробілу до кінця рядка. Якщо пробілів у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі літери та цифри.
  3. Ввести з клавіатури рядок str і символ symv. Вставити пробіл перед кожним входженням символу symv.

Варіант 5

  1. Ввести з клавіатури рядок str і символ symv. Замінити у всьому рядку всі літери на symv.
  2. Ввести з клавіатури рядок. Видалити з нього всі зайві пробіли, залишивши по одному пробілу замість кількох.
  3. Ввести з клавіатури рядок str. Вставити пробіл у рядок str перед та після кожного мінуса у другій половині цього рядка.

Варіант 6

  1. Ввести з клавіатури рядок str і символ symv. Замінити у всьому рядку всі літери та цифри на symv.
  2. Ввести з клавіатури рядок str. Видалити в цьому рядку всі входження підрядку "ох" починаючи від останнього пробілу і до кінця рядку. Якщо пробілів у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str і два символи symv1 та symv2. Вставити символ symv2 перед кожним входженням символу symv1.

Варіант 7

  1. Ввести з клавіатури рядок str і три символи symv1, symv2 та symv3. Замінити у рядку str усі символи symv1 на symv2 від початку рядка до останнього входження symv3. Якщо символів symv3 у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок str. Видалити з першої половини цього рядка всі входження першого символу.
  3. Ввести з клавіатури рядок str. Перед кожною літерою цього рядка вставте підкреслення.

Варіант 8

  1. Ввести з клавіатури рядок str і символ symv. Замінити у всьому рядку всі маленькі літери на symv.
  2. Ввести з клавіатури рядок str. Видалити з другої половини цього рядка всі зайві пробіли, залишивши по одному пробілу замість кількох.
  3. Ввести з клавіатури рядок str. Вставити "!" у рядок str перед кожним пробілом від початку рядка до останньої точки. Якщо точок у рядку немає, вивести повідомлення.

Варіант 9

  1. Ввести з клавіатури три рядки: str, str1, str2 та символ symv. Замінити в рядку str усі входження рядка str1 на str2 від першого входження symv до кінця рядка. Якщо символів symv у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі розділові знаки.
  3. Ввести з клавіатури рядок str. Вставити "!!!" у рядок str після кожного "ох" від першого пробілу до кінця рядку. Якщо пробілів у рядку немає, вивести повідомлення.

Варіант 10

  1. Ввести з клавіатури три рядки: str, str1 та str2. Замінити в рядку str всі входження str1 на str2 від початку рядка до останньої точки. Якщо точок у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі великі літери.
  3. Ввести з клавіатури рядок str і символ symv. Після кожної маленької літери в цьому рядку вставити symv.

Варіант 11

  1. Ввести з клавіатури рядок str. Замінити у всьому рядку всі маленькі літери на відповідні великі.
  2. Ввести з клавіатури рядок str і символ symv. Видалити в цьому рядку цей символ, від початку рядка до останньої точки. Якщо точок у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str і символ symv. Після кожного розділового знака в цьому рядку вставити symv.

Варіант 12

  1. Ввести з клавіатури рядок str. Замінити у всьому рядку всі великі літери на відповідні малі.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі англійські літери.
  3. Ввести з клавіатури рядок str і три символи symv1, symv2 та symv3. Вставити symv2 у рядок str перед кожним символом symv1 від початку рядка до останнього входження symv3. Якщо символів symv3 у рядку немає, вивести повідомлення.

Варіант 13

  1. Ввести з клавіатури рядок str і два символи symv1 та symv2. Замінити в рядку str всі входження symv1 на symv2, починаючи від першої точки до останньої точки. Якщо точок у рядку менше двох, то вивести повідомлення.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі маленькі англійські літери.
  3. Ввести з клавіатури рядок str. У першій половині цього рядка перед кожною великою літерою вставте відповідну маленьку літеру.

Варіант 14

  1. Ввести з клавіатури рядок str і символ symv. Замінити у цьому рядку всі великі літери на symv від початку рядка до останнього пробілу. Якщо пробілів у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури два рядки: str1 та str2. Видалити в рядку str1 всі входження рядка str2, починаючи від першого пробілу до кінця рядка. Якщо пробілів у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str і символ symv. Перед кожною великою англійською літерою в цьому рядку вставте symv.

Варіант 15

  1. Ввести з клавіатури рядок str і символ symv. Замінити у всьому рядку всі англійські літери на symv.
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі великі літери, починаючи від останньої точки до кінця рядка. Якщо точок у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str і три символи symv1, symv2 та symv3. Вставити symv2 у рядок str після кожного символу symv1 від першого входження symv3 до кінця рядка. Якщо символів symv3 у рядку немає, вивести повідомлення.

Варіант 16

  1. Ввести з клавіатури рядок str. Замінити у цьому рядку всі великі літери на маленькі від першого пробілу до кінця рядка. Якщо пробілів у рядку немає, вивести повідомлення.
  2. Ввести з клавіатури рядок str і два символи symv1 та symv2. Видалити у рядку str усі символи symv1 від початку рядка до останнього входження symv2. Якщо символів symv2 у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str. У першій половині цього рядка проредіть всі символи пробілами, а в другій половині після кожної літери вставити кому.

Варіант 17

  1. Ввести з клавіатури рядок, що є пропозицією українською мовою. Перекласти цю пропозицію з української на тарабарську (глуху приголосну замініть на дзвінку та навпаки).
  2. Ввести з клавіатури рядок str. Видалити у цьому рядку всі маленькі літери, від початку рядка до першого пробілу. Якщо пробілів у рядку немає, вивести повідомлення.
  3. Ввести з клавіатури рядок str. У першій половині цього рядка подвоїти всі літери, а в другій половині після кожної маленької літери вставити відповідну велику літеру.

Зміст