Исправить код, чтобы он не использовал динамическую память - C (СИ)

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

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

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

Решение задачи: «Исправить код, чтобы он не использовал динамическую память»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. size_t strlen(const char* const str)
  4. {
  5.   size_t length = 0;
  6.  
  7.   const char* iterator = str;
  8.  
  9.   while (*iterator != '\0')
  10.   {
  11.     length++;
  12.     iterator++;
  13.   }
  14.  
  15.   return length;
  16. }
  17.  
  18. char* strcpy(char* dest, const char* src)
  19. {
  20.   while ((*dest++ = *src++) != '\0');
  21.   return dest;
  22. }
  23.  
  24. void dropString(const char* const str, const size_t n, char* const result)
  25. {
  26.   if (strlen(str) >= n) strcpy(result, str + n);
  27. }
  28.  
  29. int main(void)
  30. {
  31.   char res[24];
  32.  
  33.   dropString("this is a test string", 4, res);
  34.  
  35.   printf("'%s'\n", res);
  36.  
  37.   return 0;
  38. }

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

  1. В функции strlen определяется длина строки, передаваемой в качестве аргумента.
  2. В функции strcpy происходит копирование строки из одного места в другое.
  3. В функции dropString удаляется указанное количество символов из начала строки.
  4. В функции main создается массив символов res, куда будет копироваться строка после удаления символов.
  5. Вызывается функция dropString с аргументами this is a test string, 4 и res.
  6. Результат выводится на экран с помощью функции printf.

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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