Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 семестр / лр 13

.docx
Скачиваний:
28
Добавлен:
16.12.2020
Размер:
30.74 Кб
Скачать

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информационных систем и технологий

ОТЧЕТ

по лабораторной работе №13

Обработка символьной информации

Выполнила: студентка ФИТ группы № 9 Каленик Алина

Проверила: Пустовалова Наталья Николаевна

Минск 2020

Задание №1

В строке есть два символа *. Получить все символы между первым и вторым символом *.

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

char arr[256], s = '*', t[256];

int n = 0;

setlocale(LC_ALL, "rus");

cout << "Введите строку ";

cin.getline(arr, 265);

for (int i = 0; arr[i] != '\0'; i++)

{

if (arr[i] == s)

{

for (i++, n; arr[i] != s; i++, n++)

t[n] = arr[i];

t[n++] = '\0';

}

}

cout << "Текст, заключенный в '*' " << t << endl;

}

Задание №2

Дана строка, состоящая из букв, цифр, запятых, точек, знаков + и –. Выделить подстроку, которая соответствует записи целого числа.

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

char arr[256], t[256];

int n = 0, m = 0;

setlocale(LC_ALL, "rus");

cout << "Введите строку ";

cin.getline(arr, 265);

for (int i = 0; *(arr + i) != '\0'; i++)

{

int k = 0;

if (*(arr + i) >= 48 && *(arr + i) <= 57)

{

*(t + n) = *(arr + i);

n++; k++;

if (*(arr + i + 1) >= 48 && *(arr + i + 1) <= 57)

continue;

else

{

if (*(arr + i + 1) != 46)

{

*(t + n) = 32;

n++;

}

else

{

for (i += 2; *(arr + i) != 32; i++)

m++;

n -=k + 1;

}

}

}

}

*(t + n) = '\0';

cout << "Целое число " << t << endl;

}

Дополнительное задание

Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами.

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

char arr[256], t[256];

int n = 0, m = 0, j = 0, k;

setlocale(LC_ALL, "rus");

cout << "Введите строку ";

cin.getline(arr, 265);

for (int i = 0; arr[i] != '\0'; i++)

{

n++;

if (arr[i] == 32 || arr[i + 1] == '\0')

{

k = i - n;

m++;

if (m % 2 == 0)

{

for (i, j; i > k; i--, j++)

t[j] = arr[i];

t[j++] = 32;

i = k + n;

}

n = 0;

}

}

t[j] = '\0';

cout << "Новая строка " << t << endl;

}

Соседние файлы в папке 1 семестр