В то время как я бросаю себе вызов не использовать ни одну из функций из string.h, ...
Лучший способ испытать себя, чтобы не использовать ни одну из функций из string.h
состоит в том, чтобы написать их самостоятельно, а затем использовать их.
ваша программа считывает следующее слово в позиции i
-esim буфера chunk
, поэтому вы получаете первые буквы каждого слова (до тех пор, пока i
не превысит размер chunk
), каждый раз, когда вы читаете, вы перезаписываете второй и остальные символы последнего слова на символы только что прочитанного.Затем вы помещаете все указатели в wptrs
, чтобы они указывали на эти места, делая невозможным различение конца одной строки за другой (вы переписали все нулевые терминаторы, оставив только последний), так что вы получите первыйстрока со всеми первыми буквами ваших слов, кроме последней, что завершено.тогда вторая будет иметь ту же строку, но начинающуюся со второй ... затем третья .... и т. д.
Создайте свою собственную версию strdup(3)
и используйте chunk
для временного хранения строки... затем сделайте динамически распределенную копию строки с вашей версией strdup(3)
и сделайте указатель, чтобы указать на нее .... и т. д.
Наконец, когда вы закончите, просто освободите всевыделенные строки и voilà !!
Кроме того, это очень важно: прочитайте Как создать пример Minimal, Complete и Verifiable , так как очень часто вашв коде отсутствуют некоторые ошибки, которые вы устранили из опубликованного кода (вы обычно не знаете, где находится ошибка, или вы бы ее исправили, и здесь нет вопросов, верно?)