Работа над программой, которая использует RPN (обратный полис sh нотация).
У меня есть функция, которая переворачивает все слова строки без использования strtok
или запуска printf
(в отличие от всех решения можно найти в Интернете и здесь).
Функция фактически работает частично, поскольку печатает все слова данной строки, кроме последней, и мне нужна помощь, чтобы выяснить, что происходит.
char *extract(char s[]) {
if (s[0] == '\0')
return NULL;
int i = 0;
char *p = NULL;
while (s[i] != '\0') {
if (s[i] == ' ')
p = s + i;
i++;
}
if (p != NULL) {
*p = '\0';
return p + 1;
}
}
И затем он вызывается в main следующим образом:
char s[MAX] = "5 60 +";
while(s != NULL){
printf("%s\n", extract(s));
}
Выход + 60
с курсором, который искренне ждет чего-то, но ожидаемый вывод должен быть + 60 5