Код работает не правильно - C (СИ)

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

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

#include <stdio.h>

void mystrcpy (char *d, char *s) {
 
while (*s != '\0') {
 
*d = *s;
 
d++;
 
s++;
 
}
 
*d = *s;
 
 }

int mystrlen (char *s) {
 
  char *str = s;
 
  while (*s != '\0') s++;
 
  return s - str;
 
}

void dropString(char  *str, int n, char  *result)
 
{

  if (mystrlen(str) >= n)
 
  mystrcpy(result, str + n);

}

int main(void)
 
{
 
  char str[] = "Gde Demoni";

char result[sizeof(str) / sizeof(*str)];
 
dropString(str, 4, result);  
 
printf("'%s'\n", result);

  return 0;
 
}
Вот ошибка.

Решение задачи: «Код работает не правильно»

textual
Листинг программы
void mystrcpy(char *a, char *b) {
    while((*a = *b)) {
        a++;
        b++;
    }
}

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

В данном коде представлена функция mystrcpy, которая выполняет копирование строки b в строку a.

  1. Функция начинает работу с инициализации двух указателей: один указывает на начало строки a, а другой на начало строки b.
  2. Затем в цикле while происходит сравнение и копирование символов из строки b в строку a.
  3. В каждой итерации цикла, символ из строки b копируется в переменную a, после чего оба указателя смещаются на 1 позицию вперед.
  4. Цикл продолжается до тех пор, пока не будет достигнут конец строки b (т.е. пока не будет встречен символ '\0').
  5. По завершении цикла, функция завершается, а копированная строка остается в переменной a.

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы