Код работает не правильно - 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.
- Функция начинает работу с инициализации двух указателей: один указывает на начало строки a, а другой на начало строки b.
- Затем в цикле while происходит сравнение и копирование символов из строки b в строку a.
- В каждой итерации цикла, символ из строки b копируется в переменную a, после чего оба указателя смещаются на 1 позицию вперед.
- Цикл продолжается до тех пор, пока не будет достигнут конец строки b (т.е. пока не будет встречен символ '\0').
- По завершении цикла, функция завершается, а копированная строка остается в переменной a.