На языке программирования C у меня есть следующий код:
void rm_newline(char input[])
{
assert(input);
size_t i;
for(i = 0; input[i] != '\0'; ++i)
{
if(input[i] == '\n') input[i] = '\0';
}
return;
}
Этот код работает так, как задумано, заменяя символ '\ n' на '\ 0'. Однако у меня была предыдущая версия, показанная ниже:
void rm_newline(char input[])
{
assert(input);
char *input_ptr = input;
while(*input_ptr != '\0')
{
if(*input_ptr++ == '\n')
{
*input_ptr = '\0';
}
}
return;
}
Этот второй код неправильно заменял '\ n' на '\ 0', но я не уверен почему. Кто-нибудь может объяснить, чем второй код функционально отличается от первого кода?