| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> C /C + + Programming >> Content
    C para la función Strcmp
    C + + ya contiene una función de comparación de cadenas - " strcmp ()" - que lleva a cabo la tarea de comparar dos cadenas de la igualdad. El strcmp ( ) devuelve valores diferentes en función de la relación de las cuerdas entre sí . La ejecución de una función strcmp () difiere entre las arquitecturas de ordenador ( o permanece bajo licencia de diferentes proveedores ), pero un programador puede volver a implementar la funcionalidad básica del código para ver cómo funciona. Comprender la función, sin embargo , el programador debe entender cómo funcionan las cadenas, matrices y punteros en C y C + + . Strings , Arrays y punteros

    En C , las cadenas son colecciones ( o arrays) de caracteres. Por ejemplo ,

    cadena char [ 10 ] ;

    una matriz de 10 caracteres , " cadena" representa una sentencia en C. Sin embargo , las matrices son realmente indicadores o variables que se refieren a la dirección de memoria . El array " cadena" representa en realidad un puntero al primer elemento del bloque de memoria , y el programador puede hacer referencia a los otros elementos de la matriz a través de este puntero.
    Definición " strcmp ()" < br >

    La definición básica de una función strcmp será similar a esta :

    int strcmp (const char * cadena1 , cadena2 const char * ) ;

    Por definición, un función de comparación de cadenas se utilizan dos matrices de caracteres ( cadena1 , cadena2 ) . Dado que las matrices representan indicadores, la definición tendrá dos punteros a carácter . Con estas indicaciones , el programador puede comprobar cada elemento de una matriz contra la otra matriz. En primer lugar, sin embargo, el programador debe declarar dos variables de carácter, que contendrá los valores encontrados en las dos cadenas :

    int strcmp (const char * cadena1 , const char * cadena2 ) {

    caracteres a, b ;

    }
    Atravesar la Strings

    con el fin de comparar las cadenas , la función debe comparar cada personaje en cada cadena a la otra. Para ello , el programador utiliza los dos punteros ( cadena1 , cadena2 ) para bajar cada matriz :

    while ( * str1 = '\\ 0 ' && * str1 == str2 * ) {
    < p> str1 + + ; //se mueve el puntero del str1 cadena al siguiente carácter

    cadena2 + + //hace lo mismo , str2

    }

    el bucle while hace el buscar : en primer lugar , si str1 visitas al carácter de terminación ( " \\ 0 ", que se adjunta al final de las cadenas por el lenguaje C ) , a continuación, el bucle se cierra , ya que esa cadena se hace . En segundo lugar, si el valor de cadena1 (* str1 ) no es igual al valor de str2 (* str2 ), el bucle se detiene , porque las cadenas son iguales .
    Devolviendo el resultado
    < br >

    Strcmp devuelve uno de tres resultados : 0 ( si las cadenas son iguales ) , 1 ( si el primero es mayor que el segundo ) y -1 ( si el primero es menor que el segundo ) :
    < p> char a = * str1 ;

    caracteres * b = cadena2 ;

    if ( a == b )

    {return 0 ;}

    más

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

    Desde los bucles se detienen cuando hay desigualdad o cuando ambos están acabados , el resultado va a terminar como dos personajes iguales ( el '\\ 0 ' símbolo) o los caracteres desiguales encontrados.
    código completo

    el código completo y, a continuación , se parece a esto (y las implementaciones puede variar, dependiendo de la técnica o de las condiciones del sistema ) :

    int strcmp (const char * cadena1 , const char * cadena2 ) {

    char a , b;

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

    str1 + + ; //se mueve el puntero de la cadena str1 al siguiente carácter

    cadena2 + + //hace el misma , str2

    }

    char a = * str1 ;

    caracteres * b = str2 ;

    if ( a == b )

    {return 0 ;}

    más

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


    < p > ingresar dos cadenas , como

    caracteres cadena1 [ 40 ] = " Esto es una cadena " ;

    caracteres cadena2 [ 40 ] = " Esto es una cadena " ;

    int resultado = strcmp ( cadena1, cadena2 ) ;

    devolverá 0 ;

    Previous :

    next :
      Artículos relacionados
    ·Visual C no le hace EXE 
    ·Xcode Editor de texto Tutorial 
    ·Cómo cambiar el color en C + + 
    ·Cómo almacenar una lista de objetos de MFC 
    ·Programación Android 'C ' 
    ·Las Partes de Microsoft Visual C + + 
    ·Mostrar una imagen Caja PGM en C + + 
    ·Cómo escribir un programa de Visual C que utiliza una …
    ·Cómo leer una cadena en C 
    ·Cómo utilizar plantillas Sobrecarga de funciones en C …
      Artículos destacados
    ·Cómo agregar una contraseña en Visual Basic 6 
    ·Registro de errores en el archivo de texto para una apl…
    ·Cómo importar XLS para NET 
    ·Solución de problemas de Java en Windows XP 
    ·Descripción de la función del sistema C 
    ·¿Cómo de detección de picos en MATLAB 
    ·Cómo crear un AVD en Windows para NetBeans 
    ·Cómo leer un MOV en MATLAB 
    ·Cómo diseñar Editor Uso de OpenGL 
    ·¿Qué es un constructor de PHP 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com