Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Лаб. №8, Вариант 3. ПС-19-1. Дьяченко Максим Артёмович.
- #pragma warning(disable:4996)
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- #include <windows.h>
- using namespace std;
- int main() {
- setlocale(LC_ALL, "Rus");
- //Объявим входной текст(строку) как массив чаров.
- char line[150], numbers[] = "0123456789";
- //Запрашиваем ввод текста, длиной не более 100 символов.
- //Если ввели текст больше 100 символов, повторим процедуру выше.
- do {
- printf("Введите текст (не более 100 символов) на английском языке: \n");
- printf("Цену в вашем тексте Вы указываете в таком формате : ХХ - Х.УУ, где вместо X и Y у Вас любая цифра.\n");
- gets_s(line);
- } while (strlen(line) >= 100);
- //Объявим указатели, которые будем использовать для доступа к элементам массива line.
- //Присвоим указателям адреса первого и последнего символов массива line.
- char* position, * position1, * position2;
- position2 = (line + strlen(line));
- position1 = line; position = line;
- if (*position1 == '.') position1++;
- position = strchr(position1, '.');
- //Цикл, в котором мы будем каждый набор символов XX-X.YY
- //менять на XX-X грн.YY коп., где X и Y - элементы массива numbers.
- while (position) {
- //Присвоим указателям адреса символов до '.' и после '.'
- position1 = position;
- position--; position1++;
- //Проверяем, являются ли 2 символа после '.', а также символ до '.'
- //элементами массива numbers, т.е. числами. Также проверяем, не стоит
- //ли после точки Enter, или же конец строки.
- if (strchr(numbers, *position1++) && strchr(numbers, *position1) && strchr(numbers, *position) && (*position1 != '\0')) {
- position1 += 2;
- //Сдвигаем наш текст вправо, добавляя недостающие слова "грн" и "коп".
- memmove(position1, ++position, strlen(position) + 1);
- strcpy(position, " грн");
- *position1 = '.';
- position = position1 + 3;
- position1 = position + 5;
- memmove(position1, position, strlen(position) + 1);
- strcpy(position, " коп");
- *(--position1) = '.';
- position1++;
- position2 += 9;
- }
- position = strchr(position1, '.');
- }
- //Добавим в конец отредактированного текста символ конца строки.
- *position2 = '\0';
- //Выводим отредактированный текст.
- printf("Ваш текст после редактирования:\n");
- printf("%s \n", line);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement