0
我试图将堆栈转换为字符串。我具备的功能是将堆栈转换为字符串
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 2013-05-09 05:53:10
你在'stack'中保存了什么样的数据? – 2013-05-09 06:15:48
你被允许销毁堆栈吗?堆栈是否可以访问内部元素?如果没有,你很可能需要从一个堆栈中弹出物品,将它们转换为字符串,然后将物品推入另一个堆栈。当原始堆栈为空时,您可以使用第二个堆栈弹出的项目重新加载 - 排序工作正常。 – 2013-05-09 07:36:35