GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro em função de busca

programação
Tags: #<Tag:0x00007f1b23142248>

#1

Olá guj. Bem, estou fazendo um programa em C de um banco(sacar,depositar etc.), e quando crio a função/procedimento de busca ele não vai… Sempre cai em uma condição nada a ver quando comparo se as duas strings são iguais. Ex, eu me cadastro e coloco um numero de conta “123”, quando volto pra opção de buscar ele pede um número de conta, digito o mesmo número, porém ele me diz: “Conta não encontrada”.

Segue o código…

Estrutura:

typedef struct {

char nconta[8]; //Número da conta
float saldo; //Saldo cliente
char nome[61]; //Nome cliente
char cpf[12]; //Cpf cliente
char telefone[12]; //Telefone cliente
int ativo;

}Usuario;

Usuario cliente[MAX]; //O MAX é igual a 100.

Procedimento/função(Digo função porque também tentei fazer uma função com a mesma lógica e nada):

void buscar(){


system("cls");
int i;
char conta[8];

printf("Digite o número da conta que deseja buscar:\n");
gets(conta);

for(i=0; i<MAX; i++){

if(strstr(cliente[i].nconta,conta) != NULL){

    printf("A conta foi encontrada com sucesso:\n");
    printf("\n--------------------------------\n");
    printf("\nNúmero da Conta: %s",cliente[i].nconta);
    printf("\nNome: %s\n",cliente[i].nome);
    printf("CPF: %s\n",cliente[i].cpf);
    printf("Telefone: %s\n",cliente[i].telefone);
    printf("Saldo: %f\n",cliente[i].saldo);
    printf("\n--------------------------------\n\n");



}else{
    printf("\nConta não encontrada.");

}


}

}

Sempre cai em “conta não encontrada”, por quê?

Obrigado pela atenção Guj, grato.


#2

Ah, e também já tentei com a função strcmp.


#3
#include <stdio.h>
#include <string.h>

int main() {
  const char* conta = "12345678";
  char input[9];
  printf("Informe o numero da conta: ");
  gets(input);
  if (strcmp(input, conta) == 0)
    printf("Igual\n");
  else
    printf("Diferente\n");
}