Funções de comparação de String

Publicado por Ivan Rocha 04/06/2007

[ Hits: 8.678 ]

Homepage: http://homes.dcc.ufba.br/~ivan062/bahia

Download Stringcompara




Alguns exemplos de funções de comparação de strings e execução delas, incluindo também a conhecida strcmp.

  



Esconder código-fonte

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

int comparaStrings1(char str1[], char str2[], int qtd){
   int i = 0;
   
   while(i < qtd){
      if((str1[i] == '{FONTE}') && (str2[i] == '{FONTE}'))
         return(0);
      else{
         if (toupper(str1[i]) == toupper(str2[i]))
            i += 1;
         else{
            if(toupper(str1[i]) > toupper(str2[i]))
               return(1);
            if(toupper(str1[i]) < toupper(str2[i]))
               return(-1);
         }
      }
   }
}

int comparaStrings2(char *s, char *t){ 
   for(; toupper(*s) == toupper(*t) ; s++,t++)
      if(toupper(*s) =='{FONTE}')
         return(0);
   return(*s - *t);
}


int comparaStrings3(char str1[], char str2[]){ 
   int i = 0;

   for(; toupper(str1[i]) == toupper(str2[i]) ; i++)
      if((str1[i]) =='{FONTE}')
         return(0);
   return((str1[i]) - (str2[i]));
}


int main(){
   char str1[20], str2[20], str3[20], str4[20];
   
   system("clear");  
   printf("Programa que compara Strings!!!\n");
   printf("\nDigite a primeira string: ");
   gets(str1);
   printf("\nDigite a segunda string: ");
   gets(str2);
   printf("\nDigite a terceira string: ");
   scanf("%s", &str3);
   getchar();
   printf("\nDigite a quarta string: ");
   scanf("%s", &str4);
   printf("\nFUNCAO 1: \n");     //************************************
   printf("\nComparacao gets com gets: \n\n");    //*********************
   if(comparaStrings1(str1, str2, 20) < 0)
      printf("%s eh menor que %s\n", str1, str2);
   if(comparaStrings1(str1, str2, 20) > 0)
      printf("%s eh maior que %s\n", str1, str2);
   if(comparaStrings1(str1, str2, 20) == 0)
      printf("%s eh igual a %s\n", str1, str2);
   printf("\nComparacao gets com scanf: \n\n");      //*******************
   if(comparaStrings1(str1, str3, 20) < 0)
      printf("%s eh menor que %s\n", str1, str3);
   if(comparaStrings1(str1, str3, 20) > 0)
      printf("%s eh maior que %s\n", str1, str3);
   if(comparaStrings1(str1, str3, 20) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com gets: \n\n");      //*******************
   if(comparaStrings1(str4, str2, 20) < 0)
      printf("%s eh menor que %s\n", str4, str2);
   if(comparaStrings1(str4, str2, 20) > 0)
      printf("%s eh maior que %s\n", str4, str2);
   if(comparaStrings1(str4, str2, 20) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com scanf: \n\n");      //******************
   if(comparaStrings1(str3, str4, 20) < 0)
      printf("%s eh menor que %s\n", str3, str4);
   if(comparaStrings1(str3, str4, 20) > 0)
      printf("%s eh maior que %s\n", str3, str4);
   if(comparaStrings1(str3, str4, 20) == 0)
      printf("%s eh igual a %s\n", str3, str4);
   printf("\nFUNCAO 2: \n");    //*************************************
   printf("\nComparacao gets com gets: \n\n");    //*********************
   if(comparaStrings2(str1, str2) < 0)
      printf("%s eh menor que %s\n", str1, str2);
   if(comparaStrings2(str1, str2) > 0)
      printf("%s eh maior que %s\n", str1, str2);
   if(comparaStrings2(str1, str2) == 0)
      printf("%s eh igual a %s\n", str1, str2);
   printf("\nComparacao gets com scanf: \n\n");      //*******************
   if(comparaStrings2(str1, str3) < 0)
      printf("%s eh menor que %s\n", str1, str3);
   if(comparaStrings2(str1, str3) > 0)
      printf("%s eh maior que %s\n", str1, str3);
   if(comparaStrings2(str1, str3) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com gets: \n\n");      //*******************
   if(comparaStrings2(str4, str2) < 0)
      printf("%s eh menor que %s\n", str4, str2);
   if(comparaStrings2(str4, str2) > 0)
      printf("%s eh maior que %s\n", str4, str2);
   if(comparaStrings2(str4, str2) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com scanf: \n\n");      //******************
   if(comparaStrings2(str3, str4) < 0)
      printf("%s eh menor que %s\n", str3, str4);
   if(comparaStrings2(str3, str4) > 0)
      printf("%s eh maior que %s\n", str3, str4);
   if(comparaStrings2(str3, str4) == 0)
      printf("%s eh igual a %s\n", str3, str4);
   printf("\nFUNCAO 3: \n");    //*************************************
   printf("\nComparacao gets com gets: \n\n");    //*********************
   if(comparaStrings3(str1, str2) < 0)
      printf("%s eh menor que %s\n", str1, str2);
   if(comparaStrings3(str1, str2) > 0)
      printf("%s eh maior que %s\n", str1, str2);
   if(comparaStrings3(str1, str2) == 0)
      printf("%s eh igual a %s\n", str1, str2);
   printf("\nComparacao gets com scanf: \n\n");      //*******************
   if(comparaStrings3(str1, str3) < 0)
      printf("%s eh menor que %s\n", str1, str3);
   if(comparaStrings3(str1, str3) > 0)
      printf("%s eh maior que %s\n", str1, str3);
   if(comparaStrings3(str1, str3) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com gets: \n\n");      //*******************
   if(comparaStrings3(str4, str2) < 0)
      printf("%s eh menor que %s\n", str4, str2);
   if(comparaStrings3(str4, str2) > 0)
      printf("%s eh maior que %s\n", str4, str2);
   if(comparaStrings3(str4, str2) == 0)
      printf("%s eh igual a %s\n", str1, str3);
   printf("\nComparacao scanf com scanf: \n\n");      //******************
   if(comparaStrings3(str3, str4) < 0)
      printf("%s eh menor que %s\n", str3, str4);
   if(comparaStrings3(str3, str4) > 0)
      printf("%s eh maior que %s\n", str3, str4);
   if(comparaStrings3(str3, str4) == 0)
      printf("%s eh igual a %s\n", str3, str4);
   printf("\nFUNCAO 4: \n");    //*************************************
   printf("\nComparacao gets com gets: \n\n");    //*********************
   if(strcmp(str1, str2) < 0)
      printf("%s eh menor que %s\n", str1, str2);
   if(strcmp(str1, str2) > 0)
      printf("%s eh maior que %s\n", str1, str2);
   if(strcmp(str1, str2) == 0)
      printf("%s eh igual a %s\n", str1, str2);
   printf("\nComparacao gets com scanf: \n\n");      //*******************
   if(strcmp(str1, str3) < 0)
      printf("%s eh menor que %s\n", str1, str3);
   if(strcmp(str1, str3) > 0)
      printf("%s eh maior que %s\n", str1, str3);
   if(strcmp(str1, str3) == 0)
      printf("%s eh igual a %s", str1, str3);
   printf("\nComparacao scanf com gets: \n\n");      //*******************
   if(strcmp(str4, str2) < 0)
      printf("%s eh menor que %s\n", str4, str2);
   if(strcmp(str4, str2) > 0)
      printf("%s eh maior que %s\n", str4, str2);
   if(strcmp(str4, str2) == 0)
      printf("%s eh igual a %s", str1, str3);
   printf("\nComparacao scanf com scanf: \n\n");      //******************
   if(strcmp(str3, str4) < 0)
      printf("%s eh menor que %s\n", str3, str4);
   if(strcmp(str3, str4) > 0)
      printf("%s eh maior que %s\n", str3, str4);
   if(strcmp(str3, str4) == 0)
      printf("%s eh igual a %s\n\n", str3, str4);
   return (0);
}

Scripts recomendados

Estrutura de dados em C -> Pilhas

Pilha, algoritmos push, pop e imprimir explicados

Jogo da velha, para 2 jogadores, bem simples

Conversão do número de dias em anos (meu segundo programa em C)

Aloca String


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts