Una biblioteca que proporciona funciones de cadena y utilidades en C. Antes de usarla, haga cd c-string/ && ./setup.sh para instalar bibliotecas.
#include <c-string/lib.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
int main ( void ) {
String str = String_from ( "Hello, world!" );
printf ( "%sn" , str ); // Works, since it is NULL terminated.
String_append ( & str , "nfoo bar" );
printf ( "%sn" , str );
String str2 = String_clone ( str );
assert ( String_equal ( str , str2 )); // Identical
String_append ( & str2 , "nbaz" );
assert (! String_equal ( str , str2 )); // Different, since one of them changed.
String str3 = String_slice ( str2 , 0 , 5 );
assert (! strcmp ( str3 , "Hello" )); // You can use strcmp because it is NULL terminated.
// Always be sure to cleanup(aka. free) the strings to prevent memory leaks.
String_cleanup ( str );
String_cleanup ( str2 );
String_cleanup ( str3 );
} Un typedef de char * . Se usa para representar un vector de caracteres. Se usa principalmente para representar el búfer subyacente de la cadena, pero también se puede usar como StringBuffer en Java, std::stringstream en C ++ o StringSink en AssemblyScript. Hecho con vector C.
Un typedef de char const * . Se usa para representar una cadena. Es NULL terminado para mantenerse compatitable con la biblioteca C Standrd.
Un vector de cadenas, solo CVECTOR(String) , mafe con vector C. Utilizado por String_split y String_split_by_char .
Una estructura que describe una cadena de tamaño fijo inmutable.
int len : la longitud.char const *str : el puntero el contenido. Junto con las funciones declaradas a continuación, hay otras funciones que operan en StringBuffer que se generan a partir de la macro CVECTOR_WITH_NAME desde C-Vector.
Crea un StringBuffer a partir de una cadena literal sin asignar el montón, válido solo dentro del alcance que se crea.
char const * : acadía académica literal.Empuja varios bytes uno por uno en el búfer.
StringBuffer *sb : el búfer donde se empujarán los bytes.char *bytes : el puntero a los bytes que serán empujados.int n : entonces número de bytes que se empujarán.CVECTOR_STATUS ): lea el modo silencioso del vector C. Empuja una cadena terminada NULL en el búfer.
StringBuffer *sb : el búfer donde se empujará la cadena.char *str : la cadena que será presionada.CVECTOR_STATUS ): lea el modo silencioso del vector C.Crea una nueva cadena vacía.
String ): la cadena vacía recién creada.Crea una cadena de una cadena literal sin asignar el montón, válido solo dentro del alcance que se crea.
char const * : acadía académica literal.Crea una nueva cadena de un trozo de bytes.
char *bytes : el puntero a los bytes que se utilizarán como contenido.int n : el número de bytes que se utilizarán.String ): la nueva cadena con el fragmento si bytes como contenido. Crea una nueva cadena a partir de una cadena de terminación NULL .
char *str : la cadena NULL terminada.String ): la nueva cadena con la cadena terminada NULL como contenido.String str : la cadena.int ): la longitud de la cadena. Clones una cadena. Funciona como cómo strdup duplica una cadena NULL terminada.
String str : la cadena que se clonará.String ): una nueva cadena idéntica.Concatena el contenido de dos cuerdas en una.
String str1 : la primera cadena.String str2 : la segunda cadena.String ): una nueva cadena con el contenido concatenado. Corta un segmento de una cadena. Se permite la indexación negativa hacia atrás (es decir, el índice -1 se refiere al último elemento).
String str : la cadena desde la cual se cortará el segmento.int fi : el índice de inicio.int li : el índice final.String ): el segmento en rodajas. Si fi es más pequeño que li o fi / li son más pequeños que 0 incluso después de que se traduzcan a índices psitivos o si son mayores o iguales que la longitud de la cadena, se devolverá NULL .Hashes una cadena utilizando la función de hash no critografía Murmurhash-2.
String str : la cadena que se hashará.uint32_t ): el hash de str . Agrega una cadena de terminación NULL simple al final.
String *str : el puntero a la variable de cadena. Probablemente reasignará la cadena a una ubicación de memoria más grande, por lo que también debe reasignar la variable.char *bstr : la cadena NULL terminada que se agregará.CVECTOR_STATUS ): lea el modo silencioso del vector C. En el modo verboso, devolverá 1 si presionar cualquiera de los personajes falla, de lo contrario 1 .Compara dos cadenas.
String str1 ,String str2 : las cadenas que se compararán.bool ): true si ambas cadenas son iguales en longitud y contenido, de lo contrario false .Libera la cadena de la memoria.
String str : la cadena que se liberará.void )Crea y devuelve la versión fija de una cadena
String str : la fuente.FixedString ): la cadena fija con el contenido del primer argumento.Divide una cadena por una secuencia de caracteres.
String str : la cadena que se dividirá.char const *seq : La secuencia de caracteres.Vector_String ): las nuevas cadenas que resultaron de la división. Como String_split , pero se divide por un personaje en lugar de una secuencia.
String str : la cadena que se dividirá.char c : El personaje.Vector_String ): las nuevas cadenas que resultaron de la división. Elimina el t , , n y