You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cuando se llama la función string_get_string_as_array, pero el string que se le pasa por argumento no está en formato lista (entiendo como "formato lista": un string que empieza y termina con corchetes, cuyos elementos se separan con comas), la función no me retorna algún valor de 'error', sino que hace la conversión quitando el primer elemento del string. Ejemplo:
No sé si efectivamente es un error y debería entrar dentro de la función original, o si la idea es que "si no recibe una lista, el comportamiento es indefinido" y habría que implementar una función string_get_string_as_array_v2 del estilo:
int string_array_lines_count(char** str_arr)
{
int lines = 0;
if(!str_arr) return lines;
void _accumulate_lines(char* element)
{
lines++;
}
string_iterate_lines(str_arr,_accumulate_lines);
return lines;
}
void string_array_destroy(char** str_arr)
{
if(!str_arr) return;
void _free_lines(char* element)
{
if(element) free(element);
}
string_iterate_lines(str_arr,_free_lines);
free(str_arr);
}
char** string_get_string_as_array_v2(char* array_string)
{
char** str_array = NULL;
//Resuelve el problema de los corchetes
if(string_starts_with(array_string, "[") && string_ends_with(array_string, "]"))
{
str_array = string_get_string_as_array(array_string);
//Resuelve el problema de las comas
int commas = 0;
for(int i=0; array_string[i] != '\0'; i++)
if(array_string[i]==',') commas++;
if(commas >= cs_string_array_lines_count(str_array))
{
string_array_destroy(str_array);
str_array = NULL;
}
}
return str_array;
}
De paso, aprovecho para mostrarles las abstracciones string_array_lines_count y string_array_destroy, que no están en las commons y pueden ser útiles al manejar arrays de strings.
Saludos!
The text was updated successfully, but these errors were encountered:
Buenas!
Cuando se llama la función
string_get_string_as_array
, pero el string que se le pasa por argumento no está en formato lista (entiendo como "formato lista": un string que empieza y termina con corchetes, cuyos elementos se separan con comas), la función no me retorna algún valor de 'error', sino que hace la conversión quitando el primer elemento del string. Ejemplo:También cuando se le pasa una lista con un elemento "vacío" tampoco retorna ningún error, sino que retorna una lista con menos elementos:
No sé si efectivamente es un error y debería entrar dentro de la función original, o si la idea es que "si no recibe una lista, el comportamiento es indefinido" y habría que implementar una función
string_get_string_as_array_v2
del estilo:De paso, aprovecho para mostrarles las abstracciones
string_array_lines_count
ystring_array_destroy
, que no están en las commons y pueden ser útiles al manejar arrays de strings.Saludos!
The text was updated successfully, but these errors were encountered: