Я пытаюсь преобразовать стек в строку. Функция у меня естьПреобразование стека в строку
int StackToString(const struct Stack *stack, char *result, int resultSize);
Я хочу, чтобы мой стек выглядеть
- стек [STACK_MEMORY_ADDRESS]:
- Element_number: DATA ...
- Element_number: DATA
Если в результате достаточно места, строка должна быть сохранена там, и я хочу вернуться с помощью «1 " стоимость. Если нет (продиктовано resultSize), мы возвращаем 0 и результат не определен.
До сих пор, это то, что я написал:
int StackToString(const struct Stack *stack, char *result, int resultSize){
int i;
char str[20];
sprintf(str, "stack[0x%x]:\n", stack);
strcat(result, str);
for(i=0; i<stack->currentItemIndex;i++){
???
}
}
Может кто-нибудь предложить какие-либо советы о том, что я должен делать дальше? Я думаю, что мне нужно сделать спринт с чем-то и сравнить оставшиеся элементы в стеке с результатами и вернуться под определенные, но я не уверен, как его реализовать ....
'sprintf' в str и' strcat', чтобы результат, как вы уже делаете, только в цикле? Это звучит как правильная идея. – Patashu
Какие данные хранятся в 'stack'? –
Вам разрешено уничтожить стек? Обеспечивает ли стек доступ к внутренним элементам? Если нет, вам, скорее всего, нужно будет вытаскивать предметы из одного стека, преобразовывать их в строку и выталкивать элемент в другой стек. Когда исходный стек пуст, вы можете перезагрузить элементы, выталкиваемые из второго стека - упорядочение отлично работает. –