void prtWords(char *pSentence)
{
char tmpStrg[81], *pT=tmpStrg;
В соответствии с вашим кодом, я предполагаю, что здесь вы используете tmpStrg[81]
в качестве новой строки для слова и позже печатаете слово в обратном порядке.
int length=0;
while(*pSentence != '\0')
{
while(*pSentence != ' ')
{
Вот ваша проблема с переполнением, вы должны одновременно протестировать \0
и
(и изменить второе while
на &&
с первым while
без изменений). Нет никакой гарантии, что предложение закончится
.
*pT=*pSentence;
pT++;
pSentence++;
length++;
}
pSentence++;
while(length >= 0);
Когда length
равен 0
, вы не должны ничего делать. Изменить на >
.
{
printf("%c", *pT);
Сначала вы должны сделать pT--
, потому что последний pT++
не имеет назначения.
pT--;
length--;
}
Здесь выведите
при *pSentence == ' '
.
}
}
Составьте полный код самостоятельно, так как это домашнее задание. Любые дополнительные вопросы приветствуются.