Saltar ao contido

C/string.h

En Galilibros, o Wikibooks en galego.
< C
C
← Volver a stdlib.h string.h Seguir con tgmath.h


Este ficheiro de cabeceira permite o traballo con cadeas de caracteres en C, que non son máis que matrices de caracteres cuxa lonxitude determina o carácter nulo, '\0'. Cómpre dicir que moitos programadores prefiren evitar o seu uso debido a que as súas funcións son susceptibles de sufrir desbordamentos. Pode incluírse nun código fonte mediante a seguinte directriz:

#include <string.h>

Funcións

[editar]

Os prefixos das funcións deste ficheiro de cabeceira indican se estas traballan con cadeas de caracteres rematadas no carácter nulo (str-), non rematadas no carácter nulo (strn-) ou indiferentemente de se acaban ou non no carácter nulo (mem-).

strcat

[editar]
Algúns programadores recomendan o uso de strncat() ou strlcat() en vez desta función para evitar desbordamentos do búfer.

O seu prototipo é o seguinte:

char *strcat(char * restrict s1, const char * restrict s2);

Esta función engade unha copia da cadea apuntada por s2 (incluído o carácter nulo final) ao final da cadea apuntada por s1. O primeiro carácter de s2 substitúe o carácter nulo final de s1. A función devolve s1.

A función engade o contido dunha cadea de caracteres ao doutra, e é necesario que esta última (s1) teña espazo abondo para albergar ambas as dúas cadeas xuntas.

strchr

[editar]

O seu prototipo é o seguinte:

char *strchr(const char *s, int c);

Esta función busca a primeira ocorrencia de c (convertido nun char) na cadea apuntada por s. O carácter nulo final considérase parte da cadea. A función devolve a posición do carácter atopado ou un punteiro nulo en caso de non atopalo.

A función utilízase para buscar caracteres concretos en cadeas.

strcmp

[editar]

O seu prototipo é o seguinte:

int strcmp(const char *s1, const char *s2);

Esta función consiste nunha forma rudimentaria de comparación de cadeas de caracteres. Recibe dúas cadeas de caracteres como argumentos e devolve un valor inferior a cero se a primeira vai antes en termos lexicográficos, un valor superior a xero en caso contrario, o cero en caso de que as cadeas de caracteres sexan idénticas. A comparación efectúase comparando carácter a carácter o valor ASCII dos caracteres.

A función é extremadamente rudimentaria no que respecta ao seu algoritmo, polo que os resultados serán moi limitados. Por exemplo, a función consideraría que "Proba2" vai despois de "Proba12".

En xeral, a utilidade desta función é saber se dúas cadeas son ou non idénticas, pois respecto de cal vai antes entran en xogo factores (codificacións de caracteres) cos que a función non pode traballar correctamente.

strcpy

[editar]

Permite copiar unha cadea de caracteres noutra.

strlen

[editar]

Devolve a lonxitude en caracteres dunha cadea.

strncat

[editar]

Permite concatenar unha cadea con parte doutra.

strncmp

[editar]

Permite comparar fragmentos de dúas cadeas de caracteres.

strncpy

[editar]

Permite copiar parte dunha cadea de caracteres noutra.

strrchr

[editar]

Permite analizar cadeas de caracteres.


C
← Volver a stdlib.h string.h Seguir con tgmath.h