Ir ao conteúdo
  • Cadastre-se

comparar duas strings


Ramon_Machado

Posts recomendados

Estou tentando criar uma função que busca um nome numa estrutura de string, fazendo a comparação com strcmp. Só que não estou encontrando o meu erro. Ele não encontra o nome que eu quero e imprime na tela a primeira linha que ele leu no arquivo txt.

 

O nome da função é 'pesquisa', quando busco pelo último nome do arquivo, que é 'andre', ela me retorna o primeiro nome da lista.

 

Quem poder ajudar eu agradeço muito.

 

segue o código:

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

typedef struct info_agenda
{
    char nome[100];
    char sobrenome[100];
    char rua[100];
    char numero[100];
    //int numero;
    char complemento[100];
    char bairro[100];
    char cidade[100];
    char estado[30];
    char fone1[100];
    char fone2[100];

} agenda;

//Busca um contato e exibe na tela.
void pesquisa(char pesq[])
{
    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo

    while(!feof(arq_entrada))
    {
        fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
               agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
               agen[contador].fone1, agen[contador].fone2);

        //printf(agen[contador].nome);

        if (strcmp(pesq, agen[contador].nome) == 0)
        {
            printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                   agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                   agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);
        }
        else
        {
            printf("Cadastro inexistente!\n");
            break;
        }
        contador++;
        getchar();
        fclose(arq_entrada);
    }
}

//Função que lista os contatos do arquivo.
void listar_contatos()
{

    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda.txt", "w"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {
        fprintf(arq_saida, "#################################################################\n"
                "#################### Listando os contatos #######################\n"
                "#################################################################\n\n");

        ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0);

        while(!feof(arq_entrada))
        {
            fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
                   agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
                   agen[contador].fone1, agen[contador].fone2);

            printf("\n");

            fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                    agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                    agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);

            contador++;
        }
        printf("\nO programa leu '%d' linha(s)\n", contador);
        fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");

        //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral);
    }

    fclose(arq_entrada);
    fclose(arq_saida);
}
int main()
{
    char nome[15];
    setlocale(LC_ALL, "Portuguese");
    printf("\nEntre com o Nome: ");
    scanf(" %s", nome);
    scanf("%[^\n]", nome);
    fflush(stdin);
    pesquisa(nome);

    //listar_contatos();
    system("agenda.txt");
    system("pause");
    return 0;
}

Vou deixar o em anexo o arquivo txt.

dados.txt

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

Tinha problemas na sua função...

 

Você fez um if dentro do while da função pra comparar o nome lido do arquivo com o que está sendo pesquisado, mas se o nome não fosse igual entra no else, que imediatamente dá um break saindo do ciclo while, então seu programa sempre vai ler apenas 1 nome do arquivo.... Em qualquer casos ele sai imediatamente do while...

 

Outro problema que tinha era que o fclose(arq_entrada) estava dentro do ciclo while, e obviamente deveria estar fora, pois só deve fechar o arquivo após ler os dados dele.

 

//Busca um contato e exibe na tela.
void pesquisa(char pesq[])
{
    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo

    while(!feof(arq_entrada))
    {
        fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
               agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
               agen[contador].fone1, agen[contador].fone2);

        //printf(agen[contador].nome);

        if (strcmp(pesq, agen[contador].nome) == 0)
        {
            printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                   agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                   agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);
        }
        //else
        //{
        //    printf("Cadastro inexistente!\n");
        //    break;
        //}
        contador++;
        //getchar();
    }
    fclose(arq_entrada);
}

 

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

Muito obrigado @isrnick consegui ajustar o código aqui com a sua dica.

Até agora não encontrei nenhum erro, segue o código:

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

typedef struct info_agenda
{
    char nome[100];
    char sobrenome[100];
    char rua[100];
    char numero[100];
    //int numero;
    char complemento[100];
    char bairro[100];
    char cidade[100];
    char estado[30];
    char fone1[100];
    char fone2[100];

} agenda;

//Busca um contato e exibe na tela.
void pesquisa(char pesq[])
{
    int contador=0;
    int achou=0;

    agenda agen[100];

    FILE *arq_entrada;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo

    while(!feof(arq_entrada))
    {
        fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
               agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
               agen[contador].fone1, agen[contador].fone2);

        strupr(agen[contador].nome);

        if (strcmp(pesq, agen[contador].nome) == 0)
        {
            printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                   agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                   agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);
            achou++;
        }
        contador++;
        //getchar();

    }
    if(achou == 0)
        printf("Cadastro inexistente!\n");
    fclose(arq_entrada);
}

//Função que lista os contatos do arquivo.
void listar_contatos()
{

    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda.txt", "w"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {
        fprintf(arq_saida, "#################################################################\n"
                "#################### Listando os contatos #######################\n"
                "#################################################################\n\n");

        ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0);

        while(!feof(arq_entrada))
        {
            fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
                   agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
                   agen[contador].fone1, agen[contador].fone2);

            printf("\n");

            fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                    agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                    agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);

            contador++;
        }
        printf("\nO programa leu '%d' linha(s)\n", contador);
        fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");

        //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral);
    }

    fclose(arq_entrada);
    fclose(arq_saida);
}
int main()
{
    char nome[100];
    setlocale(LC_ALL, "Portuguese");
    printf("\nEntre com o Nome: ");
    scanf("%[^\n]", nome);
    strupr(nome);
    fflush(stdin);
    pesquisa(nome);

    //listar_contatos();
    //system("agenda.txt");
    system("pause");
    return 0;
}

 

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

  • 2 semanas depois...

Pessoal se vocês poderem me ajudar novamente eu agradeceria. Estou tentando fazer agora uma função de ordenação das strings em um arquivo separado.

 

Mas acontece um erro ao tentar ler a linha do arquivo na função ORDENAR. Já até comentei o código na parte da ordenação, mas mesmo assim não encontro o erro.

 

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

typedef struct info_agenda
{
    char nome[100];
    char sobrenome[100];
    char rua[100];
    char numero[100];
    //int numero;
    char complemento[100];
    char bairro[100];
    char cidade[100];
    char estado[30];
    char fone1[100];
    char fone2[100];

} agenda;

//Busca um contato e exibe na tela.
void pesquisa(char pesq[])
{
    int contador=0;
    int achou=0;

    agenda agen[100];

    FILE *arq_entrada;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo

    while(!feof(arq_entrada))
    {
        fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
               agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
               agen[contador].fone1, agen[contador].fone2);

        //if (strcmp (pesq, strupr(agen[contador].nome)) == 0)
        if (strstr (strupr(agen[contador].nome), pesq) != NULL)
        {

            printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                   agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                   agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);
            achou++;

        }
        contador++;
        //getchar();

    }
    if(achou != 0);
    printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    if(achou == 0)
        printf("Contato inexistente!\n");
    fclose(arq_entrada);
}

//Função que lista os contatos do arquivo.
void listar_contatos()
{

    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda.txt", "w+"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {
        fprintf(arq_saida, "#################################################################\n"
                "#################### Listando os contatos #######################\n"
                "#################################################################\n\n");

        ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0);

        while(!feof(arq_entrada))
        {
            fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
                   agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
                   agen[contador].fone1, agen[contador].fone2);

            printf("\n");

            fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                    agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                    agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);

            contador++;
        }
        printf("O programa leu '%d' linha(s)\n", contador);
        fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");

        //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral);
    }

    fclose(arq_entrada);
    fclose(arq_saida);
}

void ordenar()
{

    int contador=0;
    int i,j;
    char *linha[500];
    char temp[500];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda_ordenada.txt", "w+"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {
        while(!feof(arq_entrada))
        {
            //fscanf(arq_entrada,"%[^\n]", linha[contador]);
            fgets(linha[contador],500, arq_entrada) != NULL;
            //printf(linha[contador]);
            printf("\n");
            contador++;
        }
        //ordenar
//        for(i=0; i < contador; i++)
//        {
//            for (j=0; j < (contador-1); j++)
//            {
//
//                if(strcmp(linha[j],linha[j+1]) > 0)
//                {
//                    //strcpy(temp,linha[j]);
//                    //strcpy(linha[j],linha[j+1]);
//                    //strcpy(linha[j+1],temp);
//
//                    strcpy(temp,linha[j+1]);
//                    strcpy(linha[j+1],linha[j]);
//                    strcpy(linha[j],temp);
//                }
//            }
//        }//fim do for
//
//        //imprime
//        for(i=0; i < contador; i++)
//        {
//            fprintf(arq_saida,"%s", linha[i]);
//        }
    }
    //printf("O programa leu '%d' linha(s)\n", contador);
    fclose(arq_entrada);
    fclose(arq_saida);

}//fim da função ordenar


int main()
{
    setlocale(LC_ALL, "Portuguese");
    int op;
    char nome[100];

    while(op!=4)
    {
        printf("\n==============MENU==================\n");
        printf("1-Listar contatos da agenda: \n");
        printf("2-Buscar contatos da agenda: \n");
        printf("3-Para ordenar a agenda:\n");
        printf("4-Sair:\n");
        scanf("%d",&op);

        if(op==1)
        {
            listar_contatos();
            system("agenda.txt");
            system("cls");

        }
        if(op==2)
        {
            fflush(stdin);
            printf("\nEntre com o Nome: ");
            scanf("%[^\n]", nome);
            strupr(nome);
            fflush(stdin);
            pesquisa(nome);
        }
        if(op==3)
        {
            printf("Ordenando a agenda e saindo...\n");
            ordenar();
            exit(0);
        }
        if(op==4)
        {
            printf("Encerrando programa...\n");
            system("pause");
            exit(0);
        }

    }//fim do while de MENU
    return 0;

}//fim da função main

 

o arquivo de dados.txt é o mesmo do primeiro tópico.

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

Boa noite, para ler uma linha, use um vetor alocado, seja declarado com malloc ou manualmente, sendo que você não fez a seguir:

char *linha[500];

fgets(linha[contador],500, arq_entrada) != NULL;

 

Você usou uma matriz de string, sendo que a matriz foi alocada com 500 linhas, mas a quantidade de letras para cada linha não foi definida, sendo feito do seguinte modo:

char linha[500][100]; //linhaxletras

ou

char *linha[500];

linha[x] = (char *)malloc(sizeof(char)*TAM_MAX_LETRAS));

 

no fgets, pode deixar como está:

fgets(linha[contador],500, arq_entrada)

Link para o comentário
Compartilhar em outros sites

@TYSQUARE89 consegui fazer a leitura corretamente do arquivo, muito obrigado. Mas agora tenho outro problema, na questão da ordenação.

Necessariamente o arquivos dados.txt tem que ter uma linha em branco no final para a ordenação funcionar corretamente, senão houver essa linha linha em branco, ele acaba por juntar 2 linhas numa só. Se você puder me ajudar, eu agradeceria muito. Segue o código atualizado:

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

typedef struct info_agenda
{
    char linha[500];
    char nome[100];
    char sobrenome[100];
    char rua[100];
    char numero[100];
    char complemento[100];
    char bairro[100];
    char cidade[100];
    char estado[30];
    char fone1[100];
    char fone2[100];

} agenda;

//Busca um contato e exibe na tela.
void pesquisa(char pesq[])
{
    int contador=0;
    int achou=0;

    agenda agen[100];

    FILE *arq_entrada;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo

    while(!feof(arq_entrada))
    {
        fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
               agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
               agen[contador].fone1, agen[contador].fone2);

        //if (strcmp (pesq, strupr(agen[contador].nome)) == 0)
        if (strstr (strupr(agen[contador].nome), pesq) != NULL)
        {

            printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                   agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                   agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);
            achou++;

        }
        contador++;
        //getchar();

    }
    if(achou != 0);
    printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    if(achou == 0)
        printf("Contato inexistente!\n");
    fclose(arq_entrada);
}

//Função que lista os contatos do arquivo.
void listar_contatos()
{

    int contador=0;

    agenda agen[100];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda.txt", "w+"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {
        fprintf(arq_saida, "#################################################################\n"
                "#################### Listando os contatos #######################\n"
                "#################################################################\n\n");

        ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0);

        while(!feof(arq_entrada))
        {
            fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua,
                   agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado,
                   agen[contador].fone1, agen[contador].fone2);

            printf("\n");

            fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n",
                    agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento,
                    agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2);

            contador++;
        }
        system("cls");
        printf("O programa leu '%d' linha(s)\n", contador);
        fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n");

        //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral);
    }

    fclose(arq_entrada);
    fclose(arq_saida);
}

void ordenar()
{

    int contador=0;
    int i,j;
    char temp[500];

    agenda agen[1100];

    FILE *arq_entrada;
    FILE *arq_saida;

    arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo
    arq_saida = fopen("agenda_ordenada.txt", "w+"); // Escreve o arquivo

    if (arq_entrada == NULL)
    {
        printf("Arquivo de dados não localizado!\n\n");
        system("pause");
    }
    else
    {

        while(fgets(agen[contador].linha, sizeof(agen[contador].linha), arq_entrada) != NULL)
        {
            //printf("%s\n", agen[contador].linha);
            contador++;
        }
        ///ordenar
        for(i=1; i < contador; i++)
        {
            for (j=0; j < (contador -1); j++)
            {

                if(strcmp(agen[j].linha,agen[j+1].linha) > 0)
                {
                    strcpy(temp,agen[j].linha);
                    strcpy(agen[j].linha,agen[j+1].linha);
                    strcpy(agen[j+1].linha,temp);
                }
            }
        }///fim do for

        ///imprimir
        for(i=0; i < contador; i++)
        {
            fprintf(arq_saida,"%s", agen[i].linha);
        }

    }
    printf("\nO programa leu '%d' linha(s)\n", contador);
    fclose(arq_entrada);
    fclose(arq_saida);

}//fim da função ordenar


int main()
{
    setlocale(LC_ALL, "Portuguese");
    int op;
    char nome[100];

    while(op!=4)
    {
        printf("\n==============MENU==================\n");
        printf("1-Listar contatos da agenda: \n");
        printf("2-Buscar contatos da agenda: \n");
        printf("3-Para ordenar a agenda:\n");
        printf("4-Sair:\n");
        scanf("%d",&op);

        if(op==1)
        {
            listar_contatos();
            system("agenda.txt");
            system("cls");

        }
        if(op==2)
        {
            fflush(stdin);
            printf("\nEntre com o Nome: ");
            scanf("%[^\n]", nome);
            strupr(nome);
            fflush(stdin);
            system("cls");
            pesquisa(nome);
        }
        if(op==3)
        {
            printf("Ordenando a agenda e saindo...\n");
            ordenar();
            system("agenda_ordenada.txt");
        }
        if(op==4)
        {
            printf("Encerrando programa...\n");
            system("pause");
            exit(0);
        }

    }//fim do while de MENU
    return 0;

}//fim da função main

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!