Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    7

    linguaggio c aiuto

    salve devo sviluppare una procedura che stampi a video da una lista.
    es. devo stampare AIUSPAUU
    ma devo vedere a video solo le lettere A e U

    struct listaTreniMerci2 {
    char nome[40];
    char composizione[40];
    struct listaTreniMerci2 *next;
    };

    // PUNTATORI ALLA LISTA CONTENTE I TRENI

    struct listaTreniMerci2 *treniMerci2, *composizioni;

    void tipomerci(char *alfa) {
    struct listaTreniMerci2 *tmp;
    char merci_tmp[40];
    int i;
    tmp = composizioni;
    while (tmp != NULL) {

    for(i=0;i<40;n++)
    if ((tmp->composizione[i] == 'A' || tmp->composizione[i] == 'U'))
    tmp->composizione[i]='\0';
    }
    printf(">%s\n", tmp->composizione);

    }

    vorrei sapere se così il stamperò solo le lettere A e U del parametro puntato composizione
    che contiene la parola AIUSPAUU, cioè se avrò su unica linea a video AUAUU o se qualcuno può spiegrami come fare grazie.

  2. #2
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    non ho capito quello che vuoi fare.... secondo che criterio vorresti stampare A e U scusa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    7
    vorrei sapere se leggendo all'interno della lista il valore puntato da tmp, il quale contenga ad esempio la stringa AIUSPAUU, applicando la mia procedura, riuscirei a stampare solo le lettere A e U del valore stesso escludendo così le altre lettere
    Stampando a video solo la stringa da AIUSPAUU, considerando solo A e U come caratteri validi,
    AUAUU.
    grazie

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Così non stampi nulla.
    codice:
     
    
        if ((tmp->composizione[i] == 'A' || tmp->composizione[i] == 'U'))
             tmp->composizione[i]='\0';
    Il primo carattere che entra nella condizione fa terminare la stringa.
    Nel tuo caso AIUSPAUU diventerebbe \0IUSPAUU e la printf stamperebbe una riga vuota
    IUSPAUU diventerebbe I\0SPAUU e la printf stamperebbe I
    Devi usare una stringa di appoggio.

    codice:
     
        char result[40];
        char *p = result;
        if ((tmp->composizione[i] == 'A' || tmp->composizione[i] == 'U')) {
             *p++ = tmp->composizione[i];
        }
    /* dopo il for */
        
        *p = '\0';
         printf(">%s\n", result );

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Moderazione

    Originariamente inviato da let23
    linguaggio c aiuto
    Suggerisco l'uso di titoli più significativi, come da Regolamento.

    Questo l'ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    7

    grazie

    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.