strncmp
|
Definido en el encabezado
<string.h>
|
||
|
int
strncmp
(
const
char
*
lhs,
const
char
*
rhs,
size_t
count
)
;
|
||
Compara como máximo count caracteres de dos arreglos posiblemente terminados en nulo. La comparación se realiza lexicográficamente. Los caracteres que siguen al carácter nulo no se comparan.
El signo del resultado es el signo de la diferencia entre los valores del primer par de caracteres (ambos interpretados como unsigned char ) que difieren en los arrays que se están comparando.
El comportamiento es indefinido cuando el acceso ocurre más allá del final de cualquiera de los arrays lhs o rhs . El comportamiento es indefinido cuando cualquiera lhs o rhs es el puntero nulo.
Contenidos |
Parámetros
| lhs, rhs | - | punteros a los arreglos posiblemente terminados en nulo a comparar |
| count | - | número máximo de caracteres a comparar |
Valor de retorno
Valor negativo si lhs aparece antes que rhs en orden lexicográfico.
Cero si lhs y rhs son iguales, o si count es cero.
Valor positivo si lhs aparece después de rhs en orden lexicográfico.
Notas
Esta función no es sensible a la configuración regional, a diferencia de strcoll y strxfrm .
Ejemplo
#include <stdio.h> #include <string.h> void demo(const char* lhs, const char* rhs, int sz) { const int rc = strncmp(lhs, rhs, sz); if (rc < 0) printf("First %d chars of [%s] precede [%s]\n", sz, lhs, rhs); else if (rc > 0) printf("First %d chars of [%s] follow [%s]\n", sz, lhs, rhs); else printf("First %d chars of [%s] equal [%s]\n", sz, lhs, rhs); } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!", 5); demo(string, "Hello", 10); demo(string, "Hello there", 10); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5); }
Salida:
First 5 chars of [Hello World!] equal [Hello!] First 10 chars of [Hello World!] follow [Hello] First 10 chars of [Hello World!] precede [Hello there] First 5 chars of [body!] equal [body!]
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.24.4.4 La función strncmp (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.24.4.4 La función strncmp (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.24.4.4 La función strncmp (p: 366)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.21.4.4 La función strncmp (p: 329)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.11.4.4 La función strncmp
Véase también
|
compara dos cadenas
(función) |
|
|
(C95)
|
compara una cantidad determinada de caracteres de dos cadenas anchas
(función) |
|
compara dos búferes
(función) |
|
|
compara dos cadenas de acuerdo con la configuración regional actual
(función) |
|
|
Documentación de C++
para
strncmp
|
|