Boa noite Galera. Venho pedir umas dicas pois estou começando no mundo da programação, porém estou com muitas dificuldades para resolver o problema.
Aqui tenho uma um vetor de struct do tipo inteiro. Como faço para receber ao invés de valor inteiro, receber strings( preciso receber cinco cores).
Já tentei alterar e transformar num vetor de strings, alterando o tipo, mas não tive sucesso.
Ficarei muito agradecido se puderem me ajudar nesta questão.
Obrigado
#include <stdio.h>
#include <stdlib.h>
//Declaração da constante que contem o tamnaho da pilha
#define TAM 5
//Estrutura da pilha
struct tp_pilha{
int dados[TAM];
int ini;
int topo;
};
//Variável global
struct tp_pilha pilha;
int op;
//Prototipação
void adicionar_pilha();
void remover_pilha();
void mostrar_pilha();
void menu_mostrar();
//Função principal main
int main(){
op = 1;
pilha.ini = 0;
pilha.topo = 0;
while (op != 0){
system("cls");
mostrar_pilha();
menu_mostrar();
scanf("%d", &op);
switch (op){
case 1:
adicionar_pilha();
break;
case 2:
remover_pilha();
break;
}
}
return 0;
}
//Adicionando um elementos no final da pilha
void adicionar_pilha(){
if (pilha.topo == TAM){
printf("\nA pilha esta cheia, impossivel empilhar novo elemento!\n\n");
system("pause");
}else{
printf("\nDigite o valor a ser empilhado: ");
scanf("%d", pilha.dados[pilha.topo]);
pilha.topo++;
}
}
//Retirar o último elemento da pilha
void remover_pilha(){
if (pilha.ini == pilha.topo){
printf("\nA pilha esta vazia, não há nada para ser desempilhado!\n\n");
system("pause");
}else {
pilha.dados[pilha.topo-1] = 0;
pilha.topo--;
}
}
//Mostrar o contéudo da pilha
void mostrar_pilha(){
printf("\n[ ");
for(int i =0; i < TAM; i++){
printf("%d ", pilha.dados[i]);
}
printf(" ]\n");
}
//Mostrar o menu opção
void menu_mostrar(){
printf("\nEscolha uma opcao: \n");
printf("1 -Empilhar\n");
printf("2 -Desempilhar\n");
printf("0 -Sair\n");
printf("\n");
}