スタックを文字列に変換しようとしています。私が持っている機能は
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++){
???
}
}
私が次に何をすべきかについて誰かアドバイスをいただけますか? 私は何かでスプリントを行い、スタック内の残りの要素をresultsizeと比較し、特定の下で返す必要があると思いますが、それを実装する方法がわかりません....