Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Lista di array in C

  1. #1

    Lista di array in C

    ciao a tutti, vi espongi il mio problema...devo creare una lista in cui gli elementi sono stringhe di caratteri...qualcuno puo aiutarmi?io avrei pensato a questa soluzione...

    #include <stdio.h>
    #define DIM 20

    typedef struct Nodo {

    char name[DIM];
    struct Nodo *next;

    } FilePointerNode;

    Non so se è corretta....
    potreste suggerirmi la funzione per la scansione e l'inserimento degli elementi di tipo stringa?
    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466

    Re: Lista di array in C

    Originariamente inviato da streuso83
    Non so se è corretta....
    Sì ... è corretta ...

    potreste suggerirmi la funzione per la scansione
    "Scansione" ... in che senso?

    l'inserimento degli elementi di tipo stringa?
    Una volta allocata una struttura, accedi al suo elemento come per qualsiasi stringa.
    Se staticamente, con

    stru.name

    se con un puntatore, con

    stru->name
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    sì, va bene ma utilizzerei PATH_MAX che è definito in limits.h e che rappresenta la massima dimensione di un nome file per il sistema che utilizzi
    codice:
    #include <stdio.h>
    #include <limits.h>
    
    typedef struct Nodo {
    
    	char name[PATH_MAX];
    	struct Nodo *next;
    
    } FilePointerNode;
    
    int main()
    {
    
    	return (0);
    
    }

  4. #4
    Ciao a tutti....ho buttato giu questo...

    #include <stdio.h>
    #include <malloc.h>
    #include <limits.h>
    #include <string.h>

    typedef struct Nodo {

    char name[PATH_MAX];
    struct Nodo *next;

    } FilePointerNode;

    FilePointerNode* root = NULL;

    FilePointerNode* makeNewNode( char filename ) {

    FilePointerNode* node = (FilePointerNode *) malloc ( sizeof ( FilePointerNode ) );
    node->name[PATH_MAX] = filename;
    node->next = NULL;

    return node;

    };

    FilePointerNode* addNode (FilePointerNode *root, char filename ) {

    if ( !root )
    return makeNewNode( 'filename' );
    else {

    FilePointerNode* node = root ;
    while ( node->next ) node = node->next ;
    return node->next = makeNewNode( 'filename' );

    }

    };


    void inserimento (char filename)
    {
    if (root==NULL) addNode ( NULL,'filename');
    else addNode ( root, 'filename' );

    };



    Io vorrei che il mio programma leggesse una stringa di volta in volta e la assegnasse ad ogni elemento della lista.Infine stamparla a video. Cosa c'è che nn va nelle funzioni?sicuramente quelche puntatore...

  5. #5
    ci sono un po' di errori

    codice:
    #include <stdio.h>
    #include <malloc.h>
    #include <limits.h>
    #include <string.h>
    
    typedef struct Nodo {
    
    	char name[PATH_MAX];
    	struct Nodo *next;
    
    } FilePointerNode;
    
    FilePointerNode* root = NULL;
    
    FilePointerNode* makeNewNode(const char *filename ) {
    
    	FilePointerNode* node = (FilePointerNode *) malloc ( sizeof ( FilePointerNode ) );
    	strcpy (node->name, filename);
    	node->next = NULL;
    
    	return node;
    
    };
    
    FilePointerNode* addNode (FilePointerNode *root, const char * filename ) {
    
    	if ( !root )
    		return makeNewNode( filename );
    	else {
    
    	FilePointerNode* node = root ;
    	while ( node->next ) node = node->next ;
    	return node->next = makeNewNode( filename );
    
    }
    
    };
    
    int main ()
    {
    	return (0);
    }

  6. #6

    Lista di array in C

    Ciao mondobimbi...una cosa...ma come faccio a inserire e poi stampare il contenuto della lista di array che tu haii creato sopra?????

  7. #7
    leggiamo dallo stdin e stampiamo la lista.

    codice:
    int main ()
    {
    
    	char path [PATH_MAX];
    	FilePointerNode* root = NULL;
    	while ( scanf ("%s", path) > 0 ) {
    		if ( root )
    			addNode (root, path );
    		else
    			root = addNode (root, path );
    	}
    
    	FilePointerNode* node = root;
    	while ( node ) {
    		printf ( "%s\n", node->name );
    		node = node->next;
    	}
    
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.