string.h es un archivo de la Biblioteca estándar del lenguaje de programación C que contiene la definición de macros, constantes, funciones y tipos y algunas operaciones de manipulación de memoria.

Las funciones declaradas en string.h se han hecho muy populares, por lo que están garantizadas para cualquier plataforma que soporte C. Sin embargo, existen algunos problemas de seguridad con estas funciones, como el desbordamiento de buffer (buffer overflow), que hacen que algunos programadores prefieran opciones más seguras frente a la portabilidad que estas funciones ofrecen. Además, las funciones para cadenas de caracteres sólo trabajan con conjuntos de caracteres ASCII o extensiones ASCII compatibles.

Constantes y tipos

editar
Nombre Descripción
NULL macro que representa la constante puntero nulo; representa un valor de puntero que no apunta a ninguna dirección válida de objeto alguno en memoria
size_t tipo entero sin signo (positivo); es el tipo devuelto por el operador sizeof

Funciones

editar
Nombres Descripción
atoi convierte una cadena en una variable tipo int
atof convierte una cadena en una variable tipo float
memcpy copia n bytes entre dos áreas de memoria que no deben solaparse
memmove copia n bytes entre dos áreas de memoria; al contrario que memcpy las áreas pueden solaparse
memchr busca un valor a partir de una dirección de memoria dada y devuelve un puntero a la primera ocurrencia del valor buscado o NULL si no se encuentra
memcmp compara los n primeros caracteres de dos áreas de memoria
memset sobre escribe un área de memoria con un patrón de bytes dado
strcat añade una cadena al final de otra
strncat añade los n primeros caracteres de una cadena al final de otra
strchr localiza un carácter en una cadena, buscando desde el principio
strrchr localiza un carácter en una cadena, buscando desde el final
strcmp compara dos cadenas alfabéticamente ('a'!='A')
strncmp compara los n primeros caracteres de dos cadenas numéricamente ('a'!='A')
strcoll compara dos cadenas según la colación actual ('a'=='A')
strcpy copia una cadena en otra
strncpy copia los n primeros caracteres de una cadena en otra
strerror devuelve la cadena con el mensaje de error correspondiente al número de error dado
strlen devuelve la longitud de una cadena
strlwr devuelve la misma cadena pero en minúsculas
strspn devuelve la posición del primer carácter de una cadena que no coincide con ninguno de los caracteres de otra cadena dada
strcspn devuelve la posición del primer carácter que coincide con alguno de los caracteres de otra cadena dada
strpbrk encuentra la primera ocurrencia de alguno de los caracteres de una cadena dada en otra
strstr busca una cadena dentro de otra
strtok parte una cadena en una secuencia de tokens
strxfrm transforma una cadena en su forma de colación (??)
strrev invierte una cadena
strupr devuelve la misma cadena pero en mayúsculas

Extensiones para C ISO

editar
Nombre Descripción Especificación
strdup hace un duplicado de la cadena dada reservando dinámicamente la memoria necesaria POSIX; originalmente una extensión BSD
strcpy s variante de strcpy que verifica los límites limitados ISO/IEC WDTR 24731
mempcpy variante de memcpy que devuelve un puntero al byte siguiente al último byte escrito GNU
memccpy variante de memcpy que para al encontrar un byte determinado UNIX 98?
strerror r análogo a strerror_r (thread-safe) GNU, POSIX
strlcpy variante de strcpy que verifica los límites originalmente OpenBSD, actualmente también FreeBSD, Solaris, OS X
strtok r versión thread-safe de strtok POSIX
strsignal análogamente a strerror, devuelve la cadena por minorías del arreglo cadena en la representación de la señal sig (no thread safe) BSDs, Solaris, Linux

Véase también

editar

📚 Artikel Terkait di Wikipedia

Desbordamiento de búfer

demuestra un desbordamiento de buffer */ #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char buffer[10]; if (argc < 2) { fprintf(stderr

Búfer de cadena

String o de String intermedias usadas para la manipulación. Java provee una clase alternativa para manipular cadenas, llamada StringBuffer. Un StringBuffer

Buffer circular

Un buffer circular, buffer cíclico o buffer de anillo es una estructura de datos que utiliza un buffer único o array ordinario y que adopta su nombre

SHA1PRNG

digest(); } return toHexString(hash) + salt; } private static String toHexString(byte[] texto) { StringBuffer ret = new StringBuffer(); String temp = Hex.getByteToHex(texto);

Algoritmo LSA

(index1 + 1) % buffer.Length; } } return Cipher(keyStream); } private static byte[] Cipher(byte[] keyStream) { byte[] result = new byte[8]; string[] keyParts

Printf

= 0; buffer1[i] != '\0'; i++) buffer[i] = buffer1[i]; /* Copiamos un STRING a Cadena y medimos su tamaño */ tam_buffer = i; tam_cad = sprintf(cadena,

Format String Attack

Format String Attack es un ataque cibernético, el cual se produce cuando los datos enviados a través de una cadena de entrada de caracteres son evaluados

Xlib

algún problema: buffer lleno, petición de evento,… las peticiones que quedarán en el buffer y no se enviarán al servidor. Xlib envía el buffer al completo