Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever sua própria implementação da função strcmp(), usada para comparar strings em CQuantidade de visualizações: 14313 vezes |
Esta dica mostra como é possível escrever sua própria implementação da função strcmp(), usada para comparar strings em C. Aqui nós demos à nossa função personalizada o nome de str_compare(). O objetivo é deixá-lo confortável para efetuar as modificações necessárias e adicionar mais uma valiosa função à sua coleção de códigos reutilizáveis. Eis o código completo:#include <stdio.h> #include <stdlib.h> #include <string.h> // função que simula o funcionamento da // função strcmp(), usada para comparar duas // strings em C int str_compare(const char *str1, const char *str2){ // avança nas duas strings enquanto seus caracteres // forem iguais e a primeira string ainda possuir // caracteres while((*str1 == *str2) && (*str1)){ str1++; str2++; } // fim da primeira string ou encontramos caracteres // diferentes. Hora de testar if((*str1 == *str2) && (!*str1)) return 0; // strings iguais else if((*str1) && (!*str2)) return -1; // a primeira string é maior else if((*str2) && (!*str1)) return 1; // a segunda string é maior } int main(int argc, char *argv[]){ char palavra1[] = "Java"; char palavra2[] = "Java"; if(str_compare(palavra1, palavra2) == 0) printf("As palavras sao iguais"); else if(str_compare(palavra1, palavra2) < 0) printf("A primeira string e maior que a segunda"); else if(str_compare(palavra1, palavra2) > 0) printf("A segunda string e maior que a primeira"); puts("\n\n"); system("PAUSE"); return 0; } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Java - Como quebrar (separar) uma string em palavras usando um objeto da classe StringTokenizer do Java JavaScript - Como retornar apenas os três primeiros elementos de um array em JavaScript usando a função slice() do objeto Array |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |