+ Responder ao Tópico



  1. #1

    Padrão Comparação de ponteiros com char e string

    Caros senhores;
    Bom dia.

    Sou novo em C, estou gostando e precisando fazer um pequeno aplicativo. Mas estou com uma dificuldade: fazer a comparação de uma palavra armazenada em um ponteiro com um char ou string, ver este comentário no código:
    //Aqui eu queria fazer a comparação das palavras esplitadas
    //-------------------------------------------------------------------

    Sei que para muitos de vocês isto é muito fácil, mas não para mim que sou novo no mundo C. Peço que se possível, me ajudem e de uma forma que um novato entenda.
    Segue o código abaixo.
    Desde já muito obrigado.

    Código :
    #include <stdio.h>
    #include <string.h>
     
     
    void main()
    {
      FILE *arq;
      char Linha[10024];
      char *result;
      int i;
     
       //Abre o arquivo de log
      arq = fopen("/usr/local/thunder/logs/access.log", "rt");
     
      if (arq == NULL)
      {
        printf("Arquivo nao abriu\n");
        return;
      }
     
      i = 1;
      while (!feof(arq))
      {
        // Le uma linha (inclusive com o '\n')
        result = fgets(Linha, 10024, arq);
        if (result)
        {
          //printf("Linha %d: %s\n",i,Linha);
          //Bloco que separa a linha em palavras (dá um split com espaços em branco)
          char * palavra;
          char * palavras[1024];
     
          int x = 0;
          palavra = strtok(Linha, " ");
          while (palavra!=NULL) {
            palavras[x] = palavra;
            x++;
            palavra = strtok(NULL, " ");
          }
          //Aqui eu queria fazer a comparação das palavras esplitadas
          //-------------------------------------------------------------------
          //printf("%d ",strverscmp(palavras[11],"1"));
          //if ((int)palavras[11]==1)
          //{
          //  printf("%s\n", palavras[5]);
          //}
          //-------------------------------------------------------------------
          //printf("%s\n", palavras[0]);
          //printf("%s\n", palavras[1]);
          //printf("%s\n", palavras[2]);
          //printf("%s\n", palavras[3]);
          //printf("Linha %d: %s\n", i, Linha);
        }
        i++;
      }
      fclose(arq);
    }

  2. #2
    Avatar de JuniorLinux
    Ingresso
    Mar 2010
    Localização
    São José do Vale do Rio Preto
    Posts
    26

    Padrão Re: Comparação de ponteiros com char e string

    Como foi dito acima, use a função strcmp, presente no cabeçalho string.h

    Ex:

    Código :
    if(strcmp(string1, string2))