elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C  (Leído 4,736 veces)
galapok11

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« en: 10 Agosto 2016, 15:52 pm »

Saludos, este es mi primer tema.
Dispongo de un archivo.txt con mas de 5.000 nombres separados por comas y entre comillas.
Me gustaria saber como guardar todos ellos en un array.
Gracias por leerme y mas un por vuestra futura respuesto.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #1 en: 10 Agosto 2016, 16:06 pm »

Suponiendo que puedes Leer TODO el contenido del archivo en Memoria y Guardarlo en un Buffer.

Lo que tendrias que hacer es lo siguiente:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. int main() {
  6. int  total = 0;
  7. char **arreglo = NULL;
  8. char *buffer; // Deberias de lee y guardar Todo el contenido del archivo en esta variable.
  9. char *token = NULL;
  10. token = strtok(buffer,",");
  11. while(token != NULL) {
  12. arreglo = realloc(arreglo, sizeof(char*) * (total +1));
  13. arreglo[total] = token;
  14. printf("Nombre %i: %s\n",total+1,arreglo[total]);
  15. total++;
  16. token=strtok(NULL,",");
  17. }
  18. }

Saludos!


« Última modificación: 12 Agosto 2016, 17:17 pm por AlbertoBSD » En línea

galapok11

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #2 en: 11 Agosto 2016, 11:33 am »

Muchas gracias AlbertoBSD.
En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #3 en: 12 Agosto 2016, 16:24 pm »

Está genial, usas strtok() para crear dinámicamente un arreglo de apuntadores a las distintas "palabras" en que se divide la cadena original.
Sólo un pequeño detalle, muy pequeño, creo que faltó inicializar el total a 0:
Código:
int total = 0;
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #4 en: 12 Agosto 2016, 16:57 pm »

 ;-) ;-) ;-) ;-) ;-)

Muchas gracias!! así es, no hago caso de mis propios consejos de inicializar las variables.... También debo de mencionar que lo escribí en el celular mientras me trasladaba al trabajo en el Bus  :rolleyes:

Ya edite el codigo

Saludos!
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #5 en: 12 Agosto 2016, 17:13 pm »

También en la línea 10 se te olvida escribir la función xD

Código
  1. token = strtok(buffer,","); // Se te olvidó strtok!!
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #6 en: 12 Agosto 2016, 17:17 pm »

 :xD :xD :xD :xD :xD

Listo ya quedo
En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #7 en: 12 Agosto 2016, 18:20 pm »

Por cierto que este post es un tributo a strtok(), una función sumamente poderosa y que no todos (especialmente principiantes) conocen bien.

Recuerdo una vez escribí un código para analizar sintácticamente un trozo de HTML que implementabla una tabla, ya saben con <tr>, <th>, etc. La idea era automatizar la tarea de descargar diariamente un fichero html desde un servidor (usando un gestor como wget.exe) y extraer los datos de la tabla a partir del HTML recibido. Luego, por supuesto una serie de cálculos a partir de dichos datos. Y bueno, ... ya me alejé del punto central, que era que mi programa analizaba todo el fragmento de <table> ... </table> usando strtok().

Aún debo tener el código por ahí, lo estuve buscando pero creo que se me borró de la computadora snif, snif, jaja.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Guardar palabras entre " " y separadas por comas en un array. Lenguaje C
« Respuesta #8 en: 12 Agosto 2016, 19:30 pm »

Buscabas por "<>"me imagino.

Si muchos no se quieren complicar la vida con tanto apuntador y direcciones de memoria,  buscan ya algo ya hecho como el StringTokenizer de Java en fin...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines