I have seen several codes about creating a queue in C, but all use integers. I wanted to create a queue where I would insert a string, for example, nameAlumnus. This queue would have a maximum of 10 strings. My code is as follows.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <malloc.h>
#include <string.h>
typedef struct Fila {
int capacidade, tamanho, inicio, fim;
char **nomes;
}Fila;
void inserir();
void excluir();
void exibir();
Fila *inicio = NULL;
Fila *fim = NULL;
int main(void) {
setlocale(LC_ALL, ""); // Define os caracteres para exibir acento, por que pelo amor de Deus...
char opcaoMenu;
do {
printf("\t\t\t\tExemplo de Queue/Fila\n\n");
printf("\tPara continuar, selecione uma opção abaixo. \n\n");
printf("\t(1) Inserir novo aluno na fila \n");
printf("\t(2) Remover aluno da fila \n");
printf("\t(3) Exibir todos os alunos da fila \n");
printf("\t(4) Sair do programa. \n\n");
printf("\tEscolha a sua opção agora, digitando apenas o número corresponde:");
scanf("%c", &opcaoMenu);
switch(opcaoMenu) {
case '1': // Inserir novo aluno na fila
inserir();
break;
case '2': // Removendo aluno da fila
if(inicio != NULL){
excluir();
} else {
printf("\n Não há nenhum aluno cadastrado na fila. Não há nada para exibir. \n");
printf("\t Aperte ENTER para voltar ao menu inicial \n");
getchar();
}
break;
case '3': // Exibindo os alunos da lista
if(inicio != NULL){
exibir();
} else {
printf("\n Não há nenhum aluno cadastrado na fila. Não há nada para exibir. \n");
printf("\t Aperte ENTER para voltar ao menu inicial \n");
getchar();
}
break;
case '4':
printf("O aplicativo foi finalizado com sucesso. Aperte ENTER para fechar o console.");
exit(0);
break;
default:
printf("O número inserido não é válido. Verifique novamente o menu.");
break;
}
getchar();
}
while (opcaoMenu > 0);
return 0;
}
Fila * criarFila(int maxElementos) {
Fila *Q;
Q = (Fila *)malloc(sizeof(Fila));
Q->elementos = (char**)malloc(sizeof(char*)*maxElementos);
Q->tamanho = 0;
Q->capacidade = maxElementos;
Q->inicio = 0;
Q->fim = 0;
return Q;
}
void inserir() {
}
void excluir() {
}
void exibir() {
}
The problem is that: I do not know how to go from there. To mount a lita with integers is "easy", since there are several tutorials on this. However, I found none that taught how to build a list with strings. :
Despite having this question in StackOverflow English, I did not understand the logic behind .
By the way, I have seen that it is easier to do in C # or C ++, but as it is for a job that specifically requires it to be in "pure" C, I can not use the others: