У меня есть функция drop_left(), которая удаляет первые n символов из строки. Я увеличиваю указатель на n пробелов, чтобы строка указывала на все после первых n символов. Когда я вернусь к главному, функция фактически не изменила строку. Что я делаю не так?Как удалить первые n символов из строки в c?
int main(int argc, char** argv) {
char string[]="drop left";
drop_left(string, 2);
printf("Drop left: %s\n" , string);
}
void drop_left(char *s, int n){
s+=n;
}
использования '' memmove' как символ * drop_left (символ * с, Int N) { возвратного memmove (S, S + N, STRLEN (ы + п) +1); } ' – BLUEPIXY
Вы изменяете только локальный аргумент, а не переменную, переданную функции. – ApproachingDarknessFish
изменяет его только внутри drop_left. Фактически вы не изменили точки «строки» местоположения, а только ее копию, которая была передана в качестве параметра. –