Código de Dev - C++ - Comparar Dos Cadenas Lexicograficamente

sin imagen de perfil

Comparar Dos Cadenas Lexicograficamentegráfica de visualizaciones


Dev - C++

Publicado el 4 de Septiembre del 2021 por Anonymous (7 códigos)
1.007 visualizaciones desde el 4 de Septiembre del 2021
Funciones genéricas que comparan dos cadenas de caracteres ASCII lexicograficamente. Su funcionamiento es similar al de `strcmp' y `strncmp'.

No duden en dejar sus comentarios/valoraciones, gracias, saludos.

Requerimientos

No requiere nada cualquier compilador de C++ debería bastar.

1.0

Publicado el 4 de Septiembre del 2021gráfica de visualizaciones de la versión: 1.0
1.008 visualizaciones desde el 4 de Septiembre del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Versión estable.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*Este codigo se cede al dominio publico*/
 
/**
    @fn string_compare()
    @brief Compara dos cadenas lexicograficamente
    @param `first' es la primera cadena
    @param `second' es la segunda cadena
    @warning Las cadenas no pueden ser NULL
    @return Un numero negativo si la primera cadena es menor que la segunda, cero si son iguales y un numero positivo si la primera es mayor que la segunda
**/
int string_compare(const char* first, const char* second)
{
    int difference;
    unsigned int index = 0U;
 
    /*
        hacemos la verificacion del bucle al final...
        para que en caso de que las cadenas...
        tengan diferentes longitudes, la diferencia...
        no sea opacada en la ultima iteracion...
        de manera que parezca que son iguales...
        cuando en realidad no lo son
    */
    do
    {
        difference = static_cast<int>
        (first[index] - second[index]);
 
         if(difference != 0)
             break;
    }while(first[index] != '\0' && second[index++] != '\0');
 
    return difference;
}
 
 
/**
    @fn string_compare_n()
    @brief Compara dos cadenas lexicograficamente hasta cierta longitud
    @param `first' es la primera cadena
    @param `second' es la segunda cadena
    @param `length' es la longitud de las cadenas
    @warning Las cadenas no pueden ser NULL
    @warning La función no verifica que las cadenas realmente tengan la longitud indicada
    @return Un numero negativo si la primera cadena es menor que la segunda, cero si son iguales y un numero positivo si la primera es mayor que la segunda
**/
int string_compare_n(const char* first, const char* second, unsigned int length)
{
    int difference;
    unsigned int index = 0U;
    /*
        como ambas cadenas seran comparadas...
        hasta una longitud en comun, entonces...
        se puede realizar la verificación del bucle al...
        principio
    */
    for( ; index < length; ++index)
    {
        difference = static_cast<int>
        (first[index] - second[index]);
         if(difference != 0)
             break;
    }
    return difference;
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7151