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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void dropString (char *str, int n, char *result)
{
    strcpy(result, str + n);
}
int main()
{
    char str[] = "Hey you, hey you,Devil's little sister,listening to your twisted transistor";
    char *p = NULL;
    int n;
    do{
    puts("Enter number simbols:");
    scanf("%d", &n);
    if(n >= strlen(str))
        puts("too much, try less");
    else break;
    }while(1);
    p = malloc((strlen(str) - n) * sizeof(p));
    dropString (str, n, p);
    puts(p);
    free(p);
    return 0;
}

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

  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
Похожие ответы