Ir ao conteúdo
  • Cadastre-se

C Como comparar CPF dentro do IF ?


ArieviloAgarf

Posts recomendados

/* Galera, boa tarde.

Sou novo na área de programação e estou aprendedo ainda. Peço ajuda para corrigir uma parte do código, onde ainda não consegui resolver. Alguém, poderia

me ajudar?

 

Programa Bancário para cadastramento de clientes.

 

Como criar uma condição para verificar se o CPF já está cadastrado?

Se tiver, mostrar uma mensagem, dizendo que já está cadastrado e pedir outro número

Senão estiver cadastrado, permitir o cadastramento normalmente. 

 

Está na estrutura DO  na linha 113

Muito obrigado!

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define TAM 300


//estruturas 
typedef struct{
	char cpf[15];
	char nome[30];
	char endereco[30];
	int dataNasc;
	
}Banco;
Banco clientes[TAM];

void menu();
void cadastrar_cliente();
void cadastrar_conta();
void consultar_cliente();
void sacar();
void depositar();
void consultar_saldo();
void sair();



int main(int argc, char const *argv[])
{
setlocale(LC_ALL,"");	

	menu();

	
	return 0;
}

void menu(){
	int i;
	Banco clientes [TAM];
	system("cls");
	int op;
	do{
	  printf("\t\t\tBANCO POSTAL DO BRASIL\n\n");
	  printf("\t\tESCOLHA O SERVIÇO QUE DESEJA REALIZAR\n\n");
	  printf(" 1 - Cadastrar Cliente\n 2 - Cadastrar Conta Bancária\n 3 - Consultar Cliente\n 4 - Sacar\n 5 - Depositar\n 6 - Consultar Saldo\n 7 - Finalizar\n "); 
	  printf("\n\nDigite a Opção Escolhida: ");
	  scanf("%d", &op);
	  
	  switch(op){
	  	case 1:
  	    	 cadastrar_cliente();
  	    	 system("PAUSE");
  	    	 break;
  	    case 2:
		  
		  
		    break;
			
		case 3:
		
		
		    break;	
		
		case 4:
		
		
		     break;	
			 
	    
		case 5:
		
		     
			 break;
			 
		case 6:
		
		
		     break;
		
		case 7:
		
		    exit(0);
		     break;
		
		default:
			printf("\n\nOpção Inválida.\n\nTente Novamente\n\n");     
			 system("pause");
			 break;
	  }
   }while(op !=7);
}
void cadastrar_cliente(){
	int i;
	system("cls");
	char cpf[15];
	char nome[30];
	char endereco[30];
	int dataNasc;
	int op;
	do{
		printf("\nInforme o CPF do Cliente, sem Espaço ou Traço: ");
		fflush(stdin);
		fgets(cpf, sizeof(cpf),stdin);
		printf("\nInforme o nome do Cliente: ");
		fgets(nome, sizeof(nome),stdin);
		printf("\nInforme o endereço do cliente:");
		fgets(endereco, sizeof(endereco),stdin);
		printf("\nInforme a Data de Nascimento: ");
		scanf("%d", &dataNasc);
		
		for (i=0; i < TAM; i++){
			if(clientes[i].cpf)    // COMO ESTABELECER UMA CONDIÇÃO PARA VERIFICAR SE O CPF JÁ ESTÁ CADASTRADO?
			                       // CASO, NÃO ESTEJA, CADASTRAMENTO É LIBERADO. SE JÁ ESTIVER CADASTRADO, MOSTRAR MENSAGEM E PEDIR
								   // PARA INFORMAR OUTRO CPF ?
		}
		printf("\nDigite 1 - Continuar ou 7 - Finalizar e Sair\n");
	}while(op!=7);
}
void cadastrar_conta(){
	
}
void consultar_cliente(){
	
}
void sacar(){
	
}
void depositar(){
	
}
void consultar_saldo(){
	
}
void sair(){
	
}

 

Link para o comentário
Compartilhar em outros sites

Para comparar 2 strings s1 e s2 usa-se a função strcmp(), passando as duas strings como parâmetro strcmp(s1, s2), e a função retorna 0 se as strings são iguais, logo basta checar se é igual a zero.

 

Ex:

if (strcmp(s1, s2) == 0) {
    printf("s1 e s2 sao iguais.\n");
}

 

Leia esse post para mais detalhes do comportamento da função:

 

Link para o comentário
Compartilhar em outros sites

Math, você poderia montar a condição, por favor? Eu realmente estou com muita dificuldade!

Obrigado!

 

adicionado 3 minutos depois

Só tem uma string CPF.   Porque, pode haver vários CPF para cadastrar, então. E se eu criasse uma variável auxiliar para receber o primeiro valor digitado, para depois comparar com o segundo valor informado?

Galera, se puderem me ajudar, ficarei muito agradecido.

Buguei Total!

Link para o comentário
Compartilhar em outros sites

Sim, vai guardar o novo CPF digitado em uma variável temporária, e tem que percorrer todos os clientes já cadastrados no banco usando um ciclo (for, while, etc) e ir comparando 1 por 1 pra ver se já existe, se não existir o novo cliente/cadastro poderá ser adicionado ao banco.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!