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++){
    ???
}
}

私が次に何をすべきかについて誰かアドバイスをいただけますか? 私は何かでスプリントを行い、スタック内の残りの要素をresultsizeと比較し、特定の下で返す必要があると思いますが、それを実装する方法がわかりません....

4

1 に答える 1