Commons Library  1.7.0
Funciones
Referencia del Archivo string.h

#include <commons/string.h> Más...

Ir al código fuente de este archivo.

Funciones

char * string_new (void)
 Crea un string vacio. Más...
 
char * string_itoa (int number)
 Crea un string en formato decimal a partir de un número. Más...
 
char * string_from_format (const char *format,...)
 Crea un nuevo string a partir de un formato especificado. Más...
 
char * string_from_vformat (const char *format, va_list arguments)
 Crea un nuevo string a partir de un formato especificado pasando un va_list con los argumentos. Más...
 
char * string_repeat (char ch, int count)
 Crea un string de longitud count con el mismo caracter. Más...
 
void string_append (char **original, char *string_to_add)
 Agrega al primer string el segundo. Más...
 
void string_n_append (char **original, char *string_to_add, int n)
 Agrega al primer string un máximo de n caracteres del segundo. Más...
 
void string_append_with_format (char **original, const char *format,...)
 Concatena al primer string el resultado de aplicar los parametros al formato especificado. Más...
 
char * string_duplicate (char *original)
 Retorna una copia del string pasado como argumento. Más...
 
void string_to_upper (char *text)
 Pone en mayuscula todos los caracteres de un string. Más...
 
void string_to_lower (char *text)
 Pone en minuscula todos los caracteres de un string. Más...
 
void string_capitalized (char *text)
 Capitaliza un string. Más...
 
void string_trim (char **text)
 Remueve todos los caracteres vacios de la derecha y la izquierda. Más...
 
void string_trim_left (char **text)
 Remueve todos los caracteres vacios de la izquierda. Más...
 
void string_trim_right (char **text)
 Remueve todos los caracteres vacios de la derecha. Más...
 
int string_length (char *text)
 Retorna la longitud del string. Más...
 
bool string_is_empty (char *text)
 Retorna si un string es "". Más...
 
bool string_starts_with (char *text, char *begin)
 Retorna un boolean que indica si el string text comienza con el string begin pasado por parametro. Más...
 
bool string_ends_with (char *text, char *end)
 Retorna un boolean que indica si el string text finaliza con el string end pasado por parametro. Más...
 
bool string_equals_ignore_case (char *actual, char *expected)
 Retorna si dos strings son iguales ignorando las mayusculas y minusculas. Más...
 
char ** string_split (char *text, char *separator)
 Separa un string dado un separador. Más...
 
char ** string_n_split (char *text, int n, char *separator)
 Separa un string tantas veces por su separador como n lo permita. Más...
 
char * string_substring (char *text, int start, int length)
 Retorna los length caracteres de text empezando en start en un nuevo string. Más...
 
char * string_substring_from (char *text, int start)
 Retorna el substring de text desde el indice start hasta el último de la palabra. Más...
 
char * string_substring_until (char *text, int length)
 Retorna los primeros length caracteres de text como un nuevo string. Más...
 
void string_iterate_lines (char **strings, void(*closure)(char *))
 Itera un array de strings y aplica la función closure a cada uno. Más...
 
char ** string_get_string_as_array (char *text)
 Retorna un array de strings a partir de un string formateado como array. Más...
 
char * string_reverse (char *text)
 Retorna el texto invertido. No se maneja el caso de NULL, si se pasa NULL su comportamiento no esta determinado. Más...
 
char * string_replace (char *text, char *substring, char *replacement)
 Retorna una copia de un string con todas las ocurrencias de un substring no vacío siendo reemplazadas por otro string. Más...
 
bool string_contains (char *text, char *substring)
 Retorna un boolean que indica si text contiene o no a substring. Más...
 
char ** string_array_new (void)
 Crea un array de strings vacio. Más...
 
void string_array_destroy (char **array)
 Destruye un array con sus strings. Más...
 
int string_array_size (char **array)
 Retorna la cantidad de líneas del array de strings. Más...
 
bool string_array_is_empty (char **array)
 Verifica si el array de strings está vacío. Más...
 
void string_array_push (char ***array, char *text)
 Agrega un string al final del array. Más...
 
char * string_array_replace (char **array, int pos, char *text)
 Reemplaza un string en un array por otro. Más...
 
char * string_array_pop (char **array)
 Quita el último string del array y lo retorna. Más...
 

Descripción detallada

#include <commons/string.h>

Documentación de las funciones

◆ string_new()

char* string_new ( void  )

Crea un string vacio.

Devuelve
El string retornado debe ser liberado con free()

◆ string_itoa()

char* string_itoa ( int  number)

Crea un string en formato decimal a partir de un número.

Parámetros
[in]numberNúmero entero a convertir
Devuelve
El string retornado debe ser liberado con free()
char* numero = string_itoa(123);
=> numero = "123"
char * string_itoa(int number)
Crea un string en formato decimal a partir de un número.

◆ string_from_format()

char* string_from_format ( const char *  format,
  ... 
)

Crea un nuevo string a partir de un formato especificado.

Parámetros
[in]formatFormato a aplicar, igual que en printf()
Devuelve
El string retornado debe ser liberado con free()
char* saludo = string_from_format("Hola %s", "mundo");
=> saludo = "Hola mundo"
char * string_from_format(const char *format,...)
Crea un nuevo string a partir de un formato especificado.

◆ string_from_vformat()

char* string_from_vformat ( const char *  format,
va_list  arguments 
)

Crea un nuevo string a partir de un formato especificado pasando un va_list con los argumentos.

Parámetros
[in]formatFormato a aplicar, igual que en vprintf()
[in]argumentsLista de argumentos a aplicar, igual que en vprintf()
Devuelve
Retorna un string que debe ser liberado con free()

◆ string_repeat()

char* string_repeat ( char  ch,
int  count 
)

Crea un string de longitud count con el mismo caracter.

Parámetros
[in]chCaracter a repetir
[in]countCantidad de veces a repetir el caracter
Devuelve
El string retornado debe ser liberado con free()
string_repeat('a', 5) = "aaaaa"
char * string_repeat(char ch, int count)
Crea un string de longitud count con el mismo caracter.

◆ string_append()

void string_append ( char **  original,
char *  string_to_add 
)

Agrega al primer string el segundo.

Parámetros
[in,out]originalPuntero al string al que se le va a concatenar el segundo. Debe apuntar a un puntero liberable con free()
[in]string_to_addString a concatenar. Admite todo tipo de strings
char *unaPalabra = string_new();
string_append(&unaPalabra, "HOLA ");
string_append(&unaPalabra, "PEPE");
=> unaPalabra = "HOLA PEPE"
char * string_new(void)
Crea un string vacio.
void string_append(char **original, char *string_to_add)
Agrega al primer string el segundo.

◆ string_n_append()

void string_n_append ( char **  original,
char *  string_to_add,
int  n 
)

Agrega al primer string un máximo de n caracteres del segundo.

Parámetros
[in,out]originalPuntero al string a modificar. Debe apuntar a un string liberable con free()
[in]string_to_addString a concatenar. Admite todo tipo de strings
[in]nCantidad máxima de caracteres a concatenar
char *unaPalabra = string_new();
string_n_append(&unaPalabra, "HOLA ", 10);
string_n_append(&unaPalabra, "PEPE", 3);
=> unaPalabra = "HOLA PEP"
void string_n_append(char **original, char *string_to_add, int n)
Agrega al primer string un máximo de n caracteres del segundo.

◆ string_append_with_format()

void string_append_with_format ( char **  original,
const char *  format,
  ... 
)

Concatena al primer string el resultado de aplicar los parametros al formato especificado.

Parámetros
[in,out]originalPuntero al string a modificar. Debe apuntar a un string liberable con free()
[in]formatFormato a aplicar, igual que en printf()
char *saludo = "HOLA ";
char *nombre = "PEPE";
string_append_with_format(&saludo, "%s!", nombre);
=> saludo = "HOLA PEPE!"
void string_append_with_format(char **original, const char *format,...)
Concatena al primer string el resultado de aplicar los parametros al formato especificado.

◆ string_duplicate()

char* string_duplicate ( char *  original)

Retorna una copia del string pasado como argumento.

Parámetros
[in]originalString a duplicar. Admite todo tipo de strings
Devuelve
El string retornado debe ser liberado con free()
char* copia = string_duplicate("hola");
char * string_duplicate(char *original)
Retorna una copia del string pasado como argumento.

◆ string_to_upper()

void string_to_upper ( char *  text)

Pone en mayuscula todos los caracteres de un string.

Parámetros
[in,out]textString a modificar. Debe apuntar a cualquier porción de memoria modificable (en el stack o en el heap)
char* heap_string = string_duplicate("hola");
string_to_upper(heap_string); => "HOLA"
char[] stack_string = "hola";
string_to_upper(stack_string); => "HOLA"
char* literal_string = "hola";
string_to_upper(literal_string); => Error!
void string_to_upper(char *text)
Pone en mayuscula todos los caracteres de un string.

◆ string_to_lower()

void string_to_lower ( char *  text)

Pone en minuscula todos los caracteres de un string.

Parámetros
[in,out]textString a modificar. Debe apuntar a cualquier porción de memoria modificable (en el stack o en el heap)
char* heap_string = string_duplicate("HOLA");
string_to_lower(heap_string); => "hola"
char[] stack_string = "HOLA";
string_to_lower(stack_string); => "hola"
char* literal_string = "HOLA";
string_to_lower(literal_string); => Error!
void string_to_lower(char *text)
Pone en minuscula todos los caracteres de un string.

◆ string_capitalized()

void string_capitalized ( char *  text)

Capitaliza un string.

Parámetros
[in,out]textString a modificar. Debe apuntar a cualquier porción de memoria modificable (en el stack o en el heap)
char* heap_string = string_duplicate("hola");
string_capitalized(heap_string); => "Hola"
char[] stack_string = "hola";
string_capitalized(stack_string); => "Hola"
char* literal_string = "hola";
string_capitalized(literal_string); => Error!
void string_capitalized(char *text)
Capitaliza un string.

◆ string_trim()

void string_trim ( char **  text)

Remueve todos los caracteres vacios de la derecha y la izquierda.

Parámetros
[in,out]textPuntero al string a modificar. Debe apuntar a un string liberable con free()
char* heap_string = string_duplicate(" hola ");
string_trim(&heap_string); => "hola"
char[] stack_string = " mundo ";
string_trim(&stack_string); => Error!
void string_trim(char **text)
Remueve todos los caracteres vacios de la derecha y la izquierda.

◆ string_trim_left()

void string_trim_left ( char **  text)

Remueve todos los caracteres vacios de la izquierda.

Parámetros
[in,out]textPuntero al string a modificar. Debe apuntar a un string liberable con free()
char* heap_string = string_duplicate(" hola");
string_trim_left(&heap_string); => "hola"
char[] stack_string = " mundo";
string_trim_left(&stack_string); => Error!
void string_trim_left(char **text)
Remueve todos los caracteres vacios de la izquierda.

◆ string_trim_right()

void string_trim_right ( char **  text)

Remueve todos los caracteres vacios de la derecha.

Parámetros
[in,out]textPuntero al string a modificar. Debe apuntar a un string liberable con free()
char* heap_string = string_duplicate("hola ");
string_trim_right(&heap_string); => "hola"
char[] stack_string = "mundo ";
string_trim_right(&stack_string); => Error!
void string_trim_right(char **text)
Remueve todos los caracteres vacios de la derecha.

◆ string_length()

int string_length ( char *  text)

Retorna la longitud del string.

Parámetros
[in]textString a medir. Admite todo tipo de strings
string_length("hola") => 4
int string_length(char *text)
Retorna la longitud del string.

◆ string_is_empty()

bool string_is_empty ( char *  text)

Retorna si un string es "".

Parámetros
[in]textString a evaluar. Admite todo tipo de strings
string_is_empty("hola") => false
string_is_empty("") => true
bool string_is_empty(char *text)
Retorna si un string es "".

◆ string_starts_with()

bool string_starts_with ( char *  text,
char *  begin 
)

Retorna un boolean que indica si el string text comienza con el string begin pasado por parametro.

Parámetros
[in]textString a evaluar. Admite todo tipo de strings
[in]beginString a buscar. Admite todo tipo de strings
string_starts_with("hola mundo", "hola") => true
string_starts_with("hola", "hola mundo") => false
bool string_starts_with(char *text, char *begin)
Retorna un boolean que indica si el string text comienza con el string begin pasado por parametro.

◆ string_ends_with()

bool string_ends_with ( char *  text,
char *  end 
)

Retorna un boolean que indica si el string text finaliza con el string end pasado por parametro.

Parámetros
[in]textString a evaluar. Admite todo tipo de strings
[in]endString a buscar. Admite todo tipo de strings
string_ends_with("hola mundo", "mundo") => true
string_ends_with("mundo", "hola mundo") => false
bool string_ends_with(char *text, char *end)
Retorna un boolean que indica si el string text finaliza con el string end pasado por parametro.

◆ string_equals_ignore_case()

bool string_equals_ignore_case ( char *  actual,
char *  expected 
)

Retorna si dos strings son iguales ignorando las mayusculas y minusculas.

Parámetros
[in]actualString a comparar. Admite todo tipo de strings
[in]expectedString a comparar. Admite todo tipo de strings
string_equals_ignore_case("hola", "hola") => true
string_equals_ignore_case("hola", "HOLA") => true
string_equals_ignore_case("hola", "mundo") => false
bool string_equals_ignore_case(char *actual, char *expected)
Retorna si dos strings son iguales ignorando las mayusculas y minusculas.

◆ string_split()

char** string_split ( char *  text,
char *  separator 
)

Separa un string dado un separador.

Parámetros
[in]textString a separar. Admite todo tipo de strings
[in]separatorSeparador a utilizar. Admite todo tipo de strings
Devuelve
Retorna un array con cada palabra y en la última posición un NULL. Debe ser liberado con string_array_destroy()
string_split("hola, mundo", ",") => {"hola", " mundo", NULL}
char ** string_split(char *text, char *separator)
Separa un string dado un separador.

◆ string_n_split()

char** string_n_split ( char *  text,
int  n,
char *  separator 
)

Separa un string tantas veces por su separador como n lo permita.

Parámetros
[in]textString a separar. Admite todo tipo de strings
[in]nCantidad máxima de veces que se puede separar
[in]separatorString separador a utilizar. Admite todo tipo de strings
Devuelve
Retorna un array de copias de los caracteres en text y en la última posición un NULL. Debe ser liberado con string_array_destroy()
string_n_split("hola, mundo, bueno", 2, ",") => ["hola", " mundo, bueno", NULL]
string_n_split("hola, mundo, bueno", 3, ",") => ["hola", " mundo", " bueno", NULL]
string_n_split("hola, mundo, bueno", 10, ",") => ["hola", " mundo", " bueno", NULL]
char ** string_n_split(char *text, int n, char *separator)
Separa un string tantas veces por su separador como n lo permita.

◆ string_substring()

char* string_substring ( char *  text,
int  start,
int  length 
)

Retorna los length caracteres de text empezando en start en un nuevo string.

Parámetros
[in]textString a partir del cual se obtiene el substring. Admite todo tipo de strings
[in]startIndice desde el cual se obtiene el substring
[in]lengthCantidad de caracteres a obtener
Devuelve
Retorna un nuevo string que debe ser liberado con free()
string_substring("hola, mundo, bueno", 0, 4) => "hola"
string_substring("hola, mundo, bueno", 7, 5) => "mundo"
string_n_split("hola, mundo, bueno", 1, 3) => "ola"
char * string_substring(char *text, int start, int length)
Retorna los length caracteres de text empezando en start en un nuevo string.

◆ string_substring_from()

char* string_substring_from ( char *  text,
int  start 
)

Retorna el substring de text desde el indice start hasta el último de la palabra.

Parámetros
[in]textString a partir del cual se obtiene el substring. Admite todo tipo de strings
[in]startIndice desde el cual se obtiene el substring
Devuelve
Retorna un nuevo string que debe ser liberado con free()

◆ string_substring_until()

char* string_substring_until ( char *  text,
int  length 
)

Retorna los primeros length caracteres de text como un nuevo string.

Parámetros
[in]textString a partir del cual se obtiene el substring. Admite todo tipo de strings
[in]lengthCantidad de caracteres a obtener
Devuelve
Retorna un nuevo string que debe ser liberado con free()

◆ string_iterate_lines()

void string_iterate_lines ( char **  strings,
void(*)(char *)  closure 
)

Itera un array de strings y aplica la función closure a cada uno.

Parámetros
[in]stringsArray de strings a iterar
[in]closureFunción a aplicar a cada string

◆ string_get_string_as_array()

char** string_get_string_as_array ( char *  text)

Retorna un array de strings a partir de un string formateado como array.

Parámetros
[in]textString a convertir. Admite todo tipo de strings
Devuelve
Retorna un array de copias de los caracteres en text y en la última posición un NULL. Debe ser liberado con string_array_destroy()
char* array_string = "[1,2,3,4]"
string_get_value_as_array(array_string) => {"1", "2", "3", "4", NULL}

◆ string_reverse()

char* string_reverse ( char *  text)

Retorna el texto invertido. No se maneja el caso de NULL, si se pasa NULL su comportamiento no esta determinado.

Parámetros
[in]textString a invertir. Admite todo tipo de strings
Devuelve
Retorna un nuevo string que debe ser liberado con free()
char* original = "boo";
string_reverse(original) => "oob"
char * string_reverse(char *text)
Retorna el texto invertido. No se maneja el caso de NULL, si se pasa NULL su comportamiento no esta d...

◆ string_replace()

char* string_replace ( char *  text,
char *  substring,
char *  replacement 
)

Retorna una copia de un string con todas las ocurrencias de un substring no vacío siendo reemplazadas por otro string.

Parámetros
[in]textString a modificar. Admite todo tipo de strings
[in]substringSubstring a reemplazar. Admite todo tipo de strings
[in]replacementString a insertar. Admite todo tipo de strings
Devuelve
Retorna un nuevo string que debe ser liberado con free()
char* original = "hello";
string_replace(original, "ello", "ola") => "hola"
string_replace(original, "l", ""); => "heo"
string_replace(original, "not a substring", "yay!"); => "hello"
char * string_replace(char *text, char *substring, char *replacement)
Retorna una copia de un string con todas las ocurrencias de un substring no vacío siendo reemplazadas...

◆ string_contains()

bool string_contains ( char *  text,
char *  substring 
)

Retorna un boolean que indica si text contiene o no a substring.

Parámetros
[in]textString a evaluar. Admite todo tipo de strings
[in]substringSubstring a buscar. Admite todo tipo de strings

◆ string_array_new()

char** string_array_new ( void  )

Crea un array de strings vacio.

Devuelve
El array retornado debe ser liberado con string_array_destroy()

◆ string_array_destroy()

void string_array_destroy ( char **  array)

Destruye un array con sus strings.

Parámetros
[in,out]arrayPuntero al array a destruir. Debe apuntar a un array de strings liberables con free() y terminado en NULL

◆ string_array_size()

int string_array_size ( char **  array)

Retorna la cantidad de líneas del array de strings.

Parámetros
[in]arrayArray de strings terminado en NULL

◆ string_array_is_empty()

bool string_array_is_empty ( char **  array)

Verifica si el array de strings está vacío.

Parámetros
[in]arrayArray de strings terminado en NULL

◆ string_array_push()

void string_array_push ( char ***  array,
char *  text 
)

Agrega un string al final del array.

Parámetros
[in,out]arrayPuntero al array a modificar. Debe apuntar a un array de strings modificable y terminado en NULL
[in]textString a agregar. Debe ser liberable con free(), pero pasa a formar parte del array, por lo que no debe ser liberado
char** array = string_array_new(); => {NULL}
string_array_push(&array, "hola"); => {"hola", NULL}
string_array_push(&array, "mundo"); => {"hola", "mundo", NULL}
char ** string_array_new(void)
Crea un array de strings vacio.
void string_array_push(char ***array, char *text)
Agrega un string al final del array.

◆ string_array_replace()

char* string_array_replace ( char **  array,
int  pos,
char *  text 
)

Reemplaza un string en un array por otro.

Parámetros
[in,out]arrayArray a modificar. Debe apuntar a un array de strings terminado en NULL
[in]posPosición del string a reemplazar
[in]textNuevo string a insertar. Debe ser liberable con free(), pero pasa a formar parte del array, por lo que no debe ser liberado
Devuelve
El string reemplazado. Debe ser liberado con free()

◆ string_array_pop()

char* string_array_pop ( char **  array)

Quita el último string del array y lo retorna.

Parámetros
[in,out]arrayArray a modificar. Debe apuntar a un array de strings terminado en NULL
Devuelve
El string quitado. Deja de pertenecer al array, por lo que debe ser liberado con free()