1 семестр / лр 13
.docxУчреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра информационных систем и технологий
ОТЧЕТ
по лабораторной работе №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;
}