Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
C para a função strcmp
C + + já contém uma função de cadeia comparação - " strcmp () " - que realiza a tarefa de comparar duas cadeias de igualdade. A função strcmp ( ) retorna os valores diferentes dependendo da relação das cadeias uma à outra . A implementação de uma função () strcmp difere entre arquiteturas de computadores (ou permanece sob licença a partir de diferentes fornecedores) , mas um programador pode reimplementar a funcionalidade básica do código para ver como ele funciona. Para entender a função , no entanto , o programador deve entender como strings, arrays e ponteiros trabalhar em C e C + +. Cordas , arrays e ponteiros

C , strings são coleções ( ou matrizes ) de caracteres. Por exemplo,

de char string [ 10];

como uma matriz de 10 caracteres , " string" representa uma sentença em C. No entanto , as matrizes são realmente ponteiros , ou variáveis ​​referentes a endereço de memória . A matriz " string" na verdade representa um ponteiro para o primeiro item no bloco de memória, eo programador pode fazer referência a outros itens na matriz através deste ponteiro.
Definindo " strcmp ()" < br >

a definição básica de uma função strcmp será semelhante a este :

int strcmp ( const char * str1 , const char * str2 );

por definição, um função comparação de string irá utilizar duas matrizes de caracteres ( str1 , str2 ) . Desde as matrizes representam ponteiros , a definição terá dois ponteiros de caracteres. Com essas dicas , o programador pode verificar cada item em uma matriz contra outro array. Antes, porém, o programador deve declarar duas variáveis ​​de caracteres , que realizará os valores encontrados nas duas cordas :

int strcmp ( const char * str1 , const char * str2 ) {

carac a, b ;

}
Atravessando as cordas

a fim de comparar as cordas , a função deve comparar cada caractere em cada cadeia de uma outra . Para fazer isso , o programador usa os dois ponteiros ( str1 , str2 ) para mover para baixo cada matriz :

while ( * str1 = '\\ 0' && * str1 == str2 * !) {
< p> str1 + + //move o ponteiro do str1 corda para o próximo caractere

str2 + + //faz o mesmo, str2

}

o loop while faz o pesquisa: primeiro , se str1 atinge um caractere de terminação ("\\ 0 ", que é anexado ao final de strings pela linguagem C) , em seguida, o loop é encerrado , porque essa seqüência é feito. Segundo, se o valor de str1 (* str1 ) não é igual ao valor de str2 (* str2 ), então o loop parar, porque as cordas são desiguais .
Retornando o resultado
< br >

sTRCMP retorna um de três resultados : 0 ( se as cordas são iguais ) , 1 ( se o primeiro é maior do que o segundo ) e -1 ( se o primeiro é menor do que o segundo ) :
< p> char a = * str1 ;

de char b = * str2 ;

if ( a == b)

{return 0;}

mais

{return ( (a < b ) -1 : 1 );}

Desde os laços parar quando não há desigualdade , ou quando ambos terminar, o resultado vai acabar como dois personagens iguais ( o símbolo '\\ 0' ) ou os personagens desiguais encontrado.
code Complete

o código completo , então, é semelhante a este (e implementações irá variar , dependendo da técnica ou do sistema condições ) :

int strcmp ( const char * str1 , const char * str2 ) {

char a , b;

while ( * str1 = '\\ 0' && * str1 == * str2 ) {

str1 + +; ! //move o ponteiro do str1 corda para o próximo caractere

str2 + + //faz o mesmo , str2

}

char a = * str1 ;

de char b = * str2 ;

if ( a == b)

{return 0;}

mais

{return ( (a < b ) -1 : 1 );} }


< p > entrar duas cordas , como

de char string1 [40] = "Esta é uma string ";

de char string2 [40] = "Esta é uma string ";

int result = strcmp ( string1 , string2 );

retornará 0;

Anterior :

Próximo : No
  Os artigos relacionados
·Como usar Ctags Com UltraStudio 
·Como fazer um arquivo GNU para C + + 
·Como fazer um gráfico vertical em C + + 
·Como corrigir C + erro + R6002 
·Como exibir uma vírgula em C + + 
·Como entrada uma string do teclado 
·O que é um Xilinx XPS 
·Visual Basic. NET vs. . Visual C # NET 
·Como usar o OpenGL para Linguagem C 
·Como fazer Gráfico Quadrantes em C + + 
  Artigos em destaque
·Como fazer um fatorial em CPP 
·Como Rejeitar os dados que ultrapassam as dimensões 
·Como fazer um botão de som no Xcode 
·Como limitar a casa decimal em Linguagem C 
·Como fazer cordas minúsculas em C + + 
·Como: GTK Seleção de Cores 
·Quais são propriedades parciais 
·Como mudar o nome do botão Declínio no iPhone 
·Definição da função C + + Cordas 
·Como Verificar Ctrl- D em C + + 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados