strlen,, strnlen, strchr, strrchr, strpbrk, strspn, strcspn, strstr, strtok o strsep subrutina
Finalidad
Determina el tamaño, la ubicación y la existencia de series en la memoria.
Biblioteca
Biblioteca C estándar (libc.a)
Sintaxis
#include <string.h>
size_t strlen (String)
const char *String;
size_t strnlen (String, maxlen)
const char *String;
size_t maxlen;
char *strchr (String, Character)
const char *String;
int Character;
char *strrchr (String, Character)
const char *String;
int Character;
char *strpbrk (String1, String2)
const char *String1, String2;
size_t strspn (String1, String2)
const char *String1, * String2;
size_t strcspn (String1, String2)
const char *String1, *String2;
char *strstr (String1, String2)
const char *String1, *String2;
char *strtok (String1, String2)
char *String1;
const char *String2;
char *strsep (String1, String2)
char **String1;
const char *String2;
char *index (String, Character)
const char *String;
int Character;
char *rindex (String, Character)
const char *String;
int Character;Descripción
strlen, strnlen, strchr, strrchr, strpbrk, Las subrutinas strspn, strcspn, strstry strtok determinan valores como el tamaño, la ubicación y la existencia de series en la memoria.
Los parámetros String1, String2y Cadena apuntan a cadenas. Una serie es una matriz de caracteres terminados por un carácter nulo.
La subrutina strlen devuelve el número de bytes de la serie a la que apunta el parámetro String , sin incluir los bytes nulos de terminación.
La función strnlen devuelve un entero que contiene el menor de la longitud de la serie a la que apunta Stringo maxlen, sin incluir los bytes nulos de terminación.
La subrutina strchr devuelve un puntero a la primera aparición del carácter especificado por el parámetro Carácter (convertido en un carácter sin signo) en la serie a la que apunta el parámetro Serie . Se devuelve un puntero nulo si el carácter no aparece en la serie. El byte nulo que termina una serie se considera parte de la serie.
La subrutina strrchr devuelve un puntero a la última aparición del carácter especificado por el parámetro Carácter (convertido a carácter) en la serie a la que apunta el parámetro Serie . Se devuelve un puntero nulo si el carácter no aparece en la serie. El byte nulo que termina una serie se considera parte de la serie.
La subrutina Strpbrk devuelve un puntero a la primera aparición en la serie a la que apunta el parámetro String1 de cualquier byte de la serie a la que apunta el parámetro String2 . Se devuelve un puntero nulo si no coinciden bytes.
La subrutina strspn devuelve la longitud del segmento inicial de la serie a la que apunta el parámetro String1 , que consta completamente de bytes de la serie a la que apunta el parámetro String2 .
La subrutina strcspn devuelve la longitud del segmento inicial de la serie a la que apunta el parámetro String1 , que consta por completo de bytes no de la serie a la que apunta el parámetro String2 .
La subrutina strstr busca la primera aparición en la serie a la que apunta el parámetro String1 de la secuencia de bytes especificada por la serie a la que apunta el parámetro String2 (excluyendo el carácter nulo de terminación). Devuelve un puntero a la serie encontrada en el parámetro String1 , o un puntero nulo si no se ha encontrado la serie. Si el parámetro String2 apunta a una serie de longitud 0, la subrutina strstr devuelve el valor del parámetro String1 .
La subrutina strtok divide la serie a la que apunta el parámetro String1 en una secuencia de señales, cada uno de los cuales está delimitado por un byte de la serie a la que apunta el parámetro String2 . La primera llamada de la secuencia toma el parámetro String1 como primer argumento y va seguida de llamadas que toman un puntero nulo como primer argumento. La serie de separador a la que apunta el parámetro String2 puede ser diferente de la llamada a la llamada.
La primera llamada de la secuencia busca en el parámetro String1 el primer byte que no está contenido en la serie de separador actual a la que apunta el parámetro String2 . Si no se encuentra ningún byte de este tipo, no existen señales en la serie a la que apunta el parámetro String1 y se devuelve un puntero nulo. Si se encuentra un byte de este tipo, es el inicio de la primera señal.
A continuación, la subrutina strtok busca en la primera señal un byte contenido en la serie de separador actual. Si no se encuentra ningún byte de este tipo, la señal actual se extiende hasta el final de la serie a la que apunta el parámetro String1 , y las búsquedas posteriores de una señal devuelven un puntero nulo. Si se encuentra un byte de este tipo, la subrutina strtok lo sobrescribe con un byte nulo, que termina la señal actual. La subrutina strtok guarda un puntero al byte siguiente, desde el que se iniciará la siguiente búsqueda de una señal. La subrutina devuelve un puntero al primer byte de la señal.
Cada llamada posterior con un puntero nulo como valor del primer argumento empieza a buscar desde el puntero guardado, utilizándolo como el primer símbolo. De lo contrario, el comportamiento de la subrutina no cambia.
La subrutina strsep devuelve la siguiente señal de la serie String1 que está delimitada por String2. La señal termina con un\0y String1 se actualiza para que apunte más allá de la señal. La subrutina strsep devuelve un puntero a la señal, o NULL si no se encuentra String2 en String1.
Las subrutinas index, rindex y strsep se incluyen para la compatibilidad con BSD y no forman parte de la biblioteca C de ANSI. La subrutina index se implementa como una llamada a la subrutina strchr . La subrutina rindex se implementa como una llamada a la subrutina strrchr .
Parámetros
| Elemento | Descripción |
|---|---|
| Carácter | Especifica un carácter para el que se debe devolver un puntero. |
| serie | Apunta a una serie de la que se devuelven datos. |
| String1 | Apunta a una serie de la que una operación devuelve resultados. |
| String2 | Apunta a una serie que contiene el origen de una operación. |
Códigos de error
strlen, strnlen, strchr, strrchr, strpbrk, Las subrutinas strspn, strcspn, strstry strtok fallan si ocurre lo siguiente:
| Elemento | Descripción |
|---|---|
| EFAULT | Un parámetro de serie es una dirección no válida. |