Os testes em que imprimo a string aparentemente só dão errado por causa dos zeros a esquerda.
O que eu fiz no meu código foi:
Resolvo o problema usando pilha, o topo da pilha contém o último digito do número desejado.
Aloco um vetor de chars auxiliar de tamanho n-k, onde n é a quantidade de dígitos de N:
char* aux = (char*)malloc(sizeof(char)*(n-k))
Desempilho minha solução nesse vetor. Como na pilha a solução está ao contrário, faço o seguinte loop:
for(int j=n-k-1; j>=0; j--){aux[j] = pop(solucao);}
Aplico a função atoi nesse vetor auxiliar e mando imprimir:
printf("%d", atoi(aux))
Dependendo do teste que rodo, a função atoi retorna um número completamente aleatório, não consegui compreender o motivo até agora.
Exemplo de retorno do Susy com a função atoi
Exemplo sem a função, imprimindo a string
Os testes em que imprimo a string aparentemente só dão errado por causa dos zeros a esquerda.
O que eu fiz no meu código foi:
char* aux = (char*)malloc(sizeof(char)*(n-k))
for(int j=n-k-1; j>=0; j--)
{
aux[j] = pop(solucao);
}
printf("%d", atoi(aux))