Функция пропускает первые n символов из строки str и формирует из оставшихся символов строку result - C (СИ)

Узнай цену своей работы

Формулировка задачи:

2. Написать функцию обработки строк: в качестве аргументов передаются в том числе строки, где конец обозначается нулевым символом '\0'.
Листинг программы
  1. void dropString (char *str, int n, char *result);
Функция пропускает первые n символов из строки str и формирует из оставшихся символов строку result. Функция не должна выходить за пределы str. Например,
Листинг программы
  1. char str[] = "Zug Zug!"; char result[sizeof(str) / sizeof(*str)]; dropString(str, 4, result); // "Zug!" dropString(str, 100, result); // ""

Решение задачи: «Функция пропускает первые n символов из строки str и формирует из оставшихся символов строку result»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void dropString (char *str, int n, char *result)
  6. {
  7.     strcpy(result, str + n);
  8. }
  9. int main()
  10. {
  11.     char str[] = "Hey you, hey you,Devil's little sister,listening to your twisted transistor";
  12.     char *p = NULL;
  13.     int n;
  14.     do{
  15.     puts("Enter number simbols:");
  16.     scanf("%d", &n);
  17.     if(n >= strlen(str))
  18.         puts("too much, try less");
  19.     else break;
  20.     }while(1);
  21.     p = malloc((strlen(str) - n) * sizeof(p));
  22.     dropString (str, n, p);
  23.     puts(p);
  24.     free(p);
  25.     return 0;
  26. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с памятью и строками
  2. Определяем функцию dropString, которая принимает три аргумента: указатель на исходную строку, количество символов, которые необходимо пропустить и указатель на результат. Внутри функции происходит копирование оставшихся символов в результат
  3. В функции main считываем строку и определяем переменную n для хранения количества символов, которые необходимо пропустить
  4. Входим в цикл do-while, который будет выполняться до тех пор, пока пользователь не введет корректное значение для n (меньше или равно длине строки)
  5. Выводим сообщение с приглашением к вводу и считываем значение n с помощью функции scanf
  6. Проверяем, что введенное значение не превышает длину строки. Если это так, выводим сообщение об ошибке и переходим к следующей итерации цикла
  7. Как только пользователь вводит корректное значение, выходим из цикла и начинаем выполнение основной части программы
  8. Выделяем память под новую строку, которая будет содержать оставшиеся символы
  9. Вызываем функцию dropString, передавая ей указатель на исходную строку, количество символов для пропуска и указатель на новую строку
  10. Выводим новую строку на экран
  11. Освобождаем память, выделенную под новую строку
  12. Возвращаем 0, что означает успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы