У меня возникли проблемы с этим. У меня есть строка C, и я хочу удалить ее первую часть. Скажем так: «Еда, количество, калории». Я хочу скопировать каждый из этих значений, но не запятые. Я нахожу запятую и возвращаю позицию запятой в свой метод. Затем я используюУдалить первую часть строки C
strncpy(aLine.field[i], theLine, end);
Чтобы скопировать «theLine» в мой массив в положении «I», только первые «конец» символов (в первый раз, «конец» будет 4, потому что это где первая запятая есть). Но тогда, потому что это в Loop, я хочу удалить «Продовольствие» из массива и снова выполнить этот процесс. Однако я не вижу, как я могу удалить первую часть (или переместить указатель массива вперед?) И сохранить остальную часть. Любая помощь будет полезна!
На самом деле, на большинстве машин, это приведет к краху, когда strtok пытается записать в строку только для чтения постоянной. –
yup. Этот код предназначен для демонстрационных целей только в отношении использования strtok. :-) –
@ChrisDodd: поспешно поддержал ваш комментарий (нет отмены), но не согласен. Константная строка '* s' копируется в cstring' str', каждый вызов strtok изменяет cstring (заменяет ',' на '0' terminator) и возвращает адрес токена. Таким образом, нет постоянной строки, доступной только для чтения. Я ошибаюсь? – Salvador