Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Roder_Wesky

#1
hola, estoy tratando de almacenar un vector de caracteres que proviene de un fichero, en una lista, llevo esto del codigo pero no entiendo el motivo porque el programa se cae.
creo que es un error en la llamada a la función o en la asignacion de NuevoNodo.



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct _nodo{
       char caracter;
       int repeticion;
       struct _nodo *sig;
}_Nodo;
typedef _Nodo *_pNodo;
_pNodo CrearLista(char caracter);
_pNodo Insertar(char caracter, _pNodo ListaInicial);


int main()
{
   struct _pNodo* apunta =NULL;
   struct _pNodo* aux2=NULL;
   struct _pNodo* inicio=NULL;
   _pNodo NuevoNodo;
   char a,aux;
   int cont=0,j,i,k;
   FILE *archivo;
   archivo=fopen("texto.txt","r");
   if (archivo == NULL)
       {
           printf("\nError de apertura del archivo. \n\n");
       }
       else
       {
           printf("\nEl contenido del archivo de prueba es: \n\n");
       while((a = fgetc(archivo)) != EOF)
   {
cont++;
   }
   char v[cont];
   rewind(archivo);


   for(i = 0; !feof(archivo);i++)
       {
       aux='0';
       for(j=0;aux!=EOF;j++)
       {
           aux= fgetc(archivo);
           if(aux!=EOF)
       {
           v[j] = aux;
           }
       }
       for(i=0;i<=cont;i++)
       {
       Insertar(v[i],NuevoNodo);
       }
       }
       fclose(archivo);
       }

       system("pause");
       return 0;
}
              // printf("asd");
_pNodo CrearLista(char caracter)
{
   _pNodo Lista;

   Lista = (_pNodo) malloc (sizeof(_Nodo));
   Lista->caracter = caracter;
   Lista->sig = NULL;

   return Lista;
}
_pNodo Insertar(char caracter, _pNodo ListaInicial)
{
   _pNodo NuevoNodo;
   _pNodo Auxiliar = ListaInicial;
   NuevoNodo =  malloc(sizeof(_Nodo));

   NuevoNodo->caracter = caracter;
   NuevoNodo->sig = NULL;

   if (ListaInicial->sig == NULL)
   {
       ListaInicial->sig = NuevoNodo;

   }
   else
   {
       while(Auxiliar->sig != NULL)
       {
           Auxiliar =  Auxiliar->sig;
       }
       Auxiliar->sig = NuevoNodo;

   }
   return NuevoNodo;
}

Gracias.  :D
#2
Programación C/C++ / Ayuda con arreglo en C
12 Julio 2016, 18:54 PM
Hola, estoy iniciándome en esto de la
programación y estoy algo detenido en un problema, consiste en tomar un archivo txt y almacenarlo en una matriz, esto ya lo hice, pero luego me pide que el usuario ingrese caracteres y el programa debe mostrar las palabras que incluyan los caracteres ingresados.
por ejemplo mi txt muestra esto:
-chile
-españa
-argentina
-china
y el usuario ingresa los siguientes caracteres :"chi".
el programa debe mostrar: chile y china.
Espero que se entienda y gracias.