Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    104

    [C] Problema confronto stringhe

    Una funzione in cui preso una stringa cognome in input, dovrebbe controllare se presente nella struttura e stampare tutti i dati relativi. Non fa nulla di tutto ciò

    codice:
    void visualizzaPersona(struct invitato *nuovo){    
        int k;
        printf("\n\nDigita il cognome da cercare:");
    
    
        scanf("%s", invitatoRicerca);
    
    
        for (k=1;k<=invitatiCounter;k++) {
            if (invitatoRicerca==nuovo[invitatiCounter].nome) {
                    printf("\nID: %d", nuovo[k].ID);        
                    printf("\nNome: %s %s", nuovo[k].nome, nuovo[k].cognome);
                    printf("\nEtà : %d", nuovo[k].eta);
                    if(nuovo[k].sex==0){
                    printf("\nSesso: Maschio");
                    }else{
                    printf("\nSesso: Femmina");
                   }
    
    
                   if(nuovo[k].type==0){
                   printf("\nTipo: Amico\n\n");
                   }else{
                   printf("\nTipo: Parente\n\n");
                   }
                }
        }   
            
        menuPrincipale();
        
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Mancano tutte le definizioni e le dichiarazioni di variabili, quel codice è incomprensibile, inoltre il menu principale dovresti probabilmente chiamarlo solo in main (almeno che tu non abbia organizzato tutto come una FSM, cosa che ritengo improbabile).

    Se tutte le dichiarazioni che mancano sono variabili globali è molto meglio che tu riveda e ristrutturi il codice.

    In ogni caso un problema che salta subito all'occhio è che le stringhe in C vanno comparate con strcmp.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    104
    Le dichiarazioni delle variabili ci sono, ma ho preferito non scrivere 50 righe di codice.. E' proprio il confronto stringhe che non mi convince.. grazie

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Le stringhe (o meglio, array di char terminati da '\0') di confrontano con strcmp, di string.h
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da LuLyLuNa Visualizza il messaggio
    Le dichiarazioni delle variabili ci sono, ma ho preferito non scrivere 50 righe di codice.. E' proprio il confronto stringhe che non mi convince.. grazie
    Ti ho risposto e linkato la documentazione: strcmp.

    Tuttavia ti invito a riconsiderare l'uso spregiudicato di variabili globali. Inoltre, per la comprensione di un estratto di codice, sono necessarie le dichiarazioni, per cui ti invito anche ad includerle in futuro.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.