Ir ao conteúdo
  • Cadastre-se
F1rmeza

C Comparando texto na condição IF

Recommended Posts

Galera, estou criando um código em C em que eu preciso reservar cadeiras que estão definidas com "D" (Disponíveis), porém creio que do método  que estou fazendo, não está funcionando. Eu criei o código por completo em portugol e funcinou direitinho, porém quando fui passar para C ele não está respondendo do mesmo jeito, até mesmo porque em portugol eu podia ver PASSO-A-PASSO do que Executar.

 

//Aqui o usuário informe a quantidade de cadeiras e eu aplico "D" (Disponível) em todos os vetores de cadeiras.
	do{
		fflush(stdin);
		printf("|+| (REGISTRANDO UM NOVO ESTÁDIO) |+|\n|- Insira o nome do estádio: ");
		gets(&estadio);
	}while(strcmp(estadio, "")==0);
	do{
		printf("|- Quantidade de cadeiras: ");
		scanf("%i", &qtdeCad);
	}while(qtdeCad<5 || qtdeCad>=10);
	do{
		cadeiras[indice]="D";
		id[indice]=0;
		indice=indice+1;
	}while(indice<qtdeCad);


//Nessa parte eu pego o procedimento validaSexo e faço um laço de repetição usando o FOR para ler todos os vetores de cadeiras. Aplico uma validação SE(comparaTexto,cadeiras[indice],"D")==0), então se no vetor 0 de cadeiras estiver escrito "D", ele irá fazer a validação e vai escrever a cadeira na tela. Isso não está ocorrendo, não está ocorrendo nada, parece que os caracter "D" não foram atribuidos na variavel cadeiras ou sla kkk 
				do{
					validaSexo(sexo);
					for(indice=0;indice<qtdeCad-1;indice++){
						if(strcmp(cadeiras[indice],"D")==0){
							printf("%s", cadeiras[indice]);
						}
					}
				}while(continuar=='s');




//Procedimento
void validaSexo(char *sexo){
	printf("\n|+| (REGISTRANDO SEXO) |+|\n|- (M) Masculino\n|- (F) Feminino\n");
	sexo=getch();
	sexo=toupper(sexo);
	system("cls");
}

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código completo para testarmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@iHollyZinhO

 

// Síntese
//  Objetivo:	
//  Entrada :	
//  Saída   :	
//  Autor	:	Caio Villar Rocha

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<locale.h>

void validaPorcentagemDesconto(int *valorNormal, int *descontoM, int *descontoF);
void validaSexo(char *sexo);

main(){
setlocale(LC_ALL, "portuguese");
	
	//Declarações
	int valorNormal, valorOriginal, descontoM, descontoF;
	int indice, qtdeCad, remover, numReserva, contR, contC, contD, confirmar;
	int id[10];
	char cadeiras[10];
	char estadio[10];
	char sexo, acao, continuar;
	
	//Instruções
	indice=0;
	contR=0;
	contC=0;
	contD=0;
	
	validaPorcentagemDesconto(&valorNormal, &descontoM, &descontoF);
	do{
		fflush(stdin);
		printf("|+| (REGISTRANDO UM NOVO ESTÁDIO) |+|\n|- Insira o nome do estádio: ");
		gets(&estadio);
	}while(strcmp(estadio, "")==0);
	do{
		printf("|- Quantidade de cadeiras: ");
		scanf("%i", &qtdeCad);
	}while(qtdeCad<5 || qtdeCad>=10);
	do{
		cadeiras[indice]="D";
		id[indice]=0;
		indice=indice+1;
	}while(indice<qtdeCad);
	
	system("cls");
	
	do{
		printf("\t|+| MENU DE AÇÕES |+|\n\n\t(1) Verificar Cadeiras\n\t(2) Efetuar Reserva\n\t(3) Cancelar Reserva\n\t(4) Confirmar Reserva\n\t(5) Mostrar Resumo\n\n|- Tecle uma opção: ");
		acao=getch();
		system("cls");
		switch(acao){
			case '1':
				indice=0;
				//Instruções;
			break;
			case '2':
				do{
					validaSexo(sexo);
					for(indice=0;indice<qtdeCad-1;indice++){
						if(strcmp(cadeiras[indice],"D")==0){
							printf("%s", cadeiras[indice]);
						}
					}
				}while(continuar=='s');
				//Instruções;
			break;
			case '3':
				//Instruções;
			break;
			case '4':
				//Instruções
			break;
			case '5':
				//Instruções
			break;
			default:
				printf("\n[!] Opção inexistente.\n");
				continuar='n';
		}
	}while(continuar=='n');
	
	
}

void validaPorcentagemDesconto(int *valorNormal, int *descontoM, int *descontoF){
	printf("|+| (REGISTRANDO UM VALOR DO INGRESSO) |+|\n| Insira o valor do ingresso: ");
	scanf("%i", valorNormal);
	printf("| Insira o desconto masculino: ");
	scanf("%i", descontoM);
	printf("| Insira o desconto feminino: ");
	scanf("%i", descontoF);
}

void validaSexo(char *sexo){
	printf("\n|+| (REGISTRANDO SEXO) |+|\n|- (M) Masculino\n|- (F) Feminino\n");
	sexo=getch();
	sexo=toupper(sexo);
	system("cls");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @F1rmeza

 

 

  • Em C usam a função strcpy!
10 horas atrás, F1rmeza disse:

cadeiras[indice]="D";

strcpy( cadeiras[indice],"D" ); /* Copio na cadeira[atual] valor "D" */

 

 

  • Cada elemento no vetor obrigadoramente tem que no mínimo 2 char [1 para letra D e outro para caractere nulo], com isso modificamos aqui também:
10 horas atrás, F1rmeza disse:

char cadeiras[10]

char cadeiras[10][2]; /* Reserve 10 vetores com 2 elementos cada */

  

 

 

~~  /  ~~

Bons Códigos!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×