Código
#include <stdio.h> #include <stdlib.h> #include <string.h> #define STRMAXLEN 256 int convert (char **buffer, const char *src); int wordsof (const char *src); int nextstrinstr (const char *str, char *buffer, int *pos); int convert (char **buffer , const char *src) { int words = wordsof (src); unsigned int i; int strpos = 0; char strbuff[STRMAXLEN]; for (i = 0; i < words; i++) { nextstrinstr (src, strbuff, &strpos); } return words; } int wordsof (const char *src) { unsigned int i, num = 0; if (src [i] == ' ') num++; ++num; return num; } int nextstrinstr (const char *str, char *buffer, int *pos) { //iterador sobre la cadena str unsigned int i = *pos; //iterador sobre la cadena buffer int j = 0; for (i, j; str [i] != ' '; i++, j++) { buffer [j] = str [i]; } buffer [j] = '\0'; ++i; *pos = i; return j; } int main () { const char *s = "cadena_uno cadena_dos cadena_tres cadena_cuatro cadena_cinco"; char **ss; convert (ss, s); }
y bueno esto es lo que hace (al menos lo que deberia hacer):
simplemente convierte de un puntero a una cadena de caracteres, a un puntero a punteros a cadenas de caracteres (casi como el metodo split de python, la diferencia es que el de python si funciona correctamente jaja..).
lo que deberia hacer es que desde la cadena
Código
const char *s = "cadena_uno cadena_dos cadena_tres cadena_cuatro cadena_cinco";
genere la cadena
Código
char **ss = {"cadena_uno", "cadena_dos", "cadena_tres", "cadena_cuatro ", "cadena_cinco" };
pero me lanza el codigo de error 255 (lo busque en google y no aparece nada, aparecen cosas que no son)
espero que me puedan ayudar...
pd: el compilador es dev-c++ y el OS es Windows 10.
Saludos.