Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- 2
- 3 char *substr(const char *str, size_t n){
- 4 char *subcadena = malloc(sizeof(char) * (n + 1));
- 5 if(!subcadena) return NULL;
- 6 subcadena[0] = '\0';
- 7 size_t longitud = strlen(str);
- 8 if (n > longitud){
- 9 strncpy(subcadena, str, n);
- 10 return subcadena;
- 11
- 12 }
- 13 strncat(subcadena, str, n);
- 14 return subcadena;
- 15 }
- 16
- 17 char **split(const char *str, char sep){
- 18 if(!str) return NULL;
- 19 size_t contador = 1;
- 20 char* sub;
- 21 for (int i = 0; i < strlen(str); i++){
- 22 if(str[i] == sep) contador += 1;
- 23 }
- 24 char **arreglo = malloc((contador + 1) * sizeof(char*));
- 25 if(!arreglo) return NULL;
- 26 size_t cont_arreglo = 0;
- 27 size_t cont_subcadena = 0;
- 28 size_t posicion = 0;
- 29 for(int j = 0; j <= strlen(str); j++){
- 30 if(str[j] != sep && str[j] != '\0'){
- 31 cont_subcadena += 1;
- 32 }else{
- 33 if (cont_arreglo == 0){
- 34 sub = substr(str, cont_subcadena);
- 35 arreglo[cont_arreglo] = sub;
- 36 cont_arreglo += 1;
- 37 posicion = cont_subcadena + 1;
- 38 cont_subcadena = 0;
- 39 }else{
- 40 sub = substr(str + posicion, cont_subcadena);
- 41 arreglo[cont_arreglo] = sub;
- 42 cont_arreglo += 1;
- 43 posicion += cont_subcadena + 1;
- 44 cont_subcadena = 0;
- 45 }
- 46 }
- 47 }
- 48 arreglo[cont_arreglo] = NULL;
- 49 return arreglo;
- 50 }
- 51
- 52 void procesar_linea(char* linea){
- 53 size_t capacidad = 0;
- 54 size_t i = 0;
- 55 size_t j = 0;
- 56 //size_t cont_operandos = 0;
- 57 //size_t cont_operadores = 0;
- 58 char sep = ' ';
- 59 char** operandos_operadores;
- 60 operandos_operadores = split(linea, sep);
- 61 while(operandos_operadores[i] != NULL){
- 62 while(operandos_operadores[i][j] != '\0'){
- 63 printf("%s\n", &operandos_operadores[i][j]);
- 64 j++;
- 65 }
- 66 j = 0;
- 67 i++;
- 68 }
- 69 }
- 70
- 71 int main() {
- 72 char* linea = "2 5 +";
- 73 procesar_linea(linea);
- 74 return 0;
- 75 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement