Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] uscire da una funzione

    Per uscire da una funzione, in modo da saltare un blocco di istruzioni nel caso non sia più necessario, è giusta la seguente sintassi?

    codice:
    return;
    Esempio:
    codice:
    for (i=0;i<10;i++)
         if (a[i]==15) 
            return;

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

  3. #3
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    per uscire da una funzione ok...
    per uscire da un blocco tipo while{}, if{}...usa break o continue a seconda del caso...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  4. #4
    Si lo sapevo.
    Grazie comunque.

    Riferito al problema della rubrica...
    è giusto così:

    codice:
    void cerca (const Rubrica *p,char cognomeN, Riga *nTel){
         int i;
         for (i=0;i<*p.primaRigaLibera;i++)
             if (*p.righe[i].cognomeNome == cognomeN)
                strcpy (*nTel.telefono, *p.righe[i].telefono);
    } /* cerca */

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ...

    Intanto il parametro

    char cognomeN

    non puo' essere un char perche' un nominativo non e' fatto da un solo carattere. Deve essere un puntatore a char.

    Poi, nel confronto

    if (*p.righe[i].cognomeNome == cognomeN)

    se cognomeNome e' una stringa di caratteri, non lo puoi confrontare con un singolo carattere (cognomeN). Se cognomeN e' un puntatore a caratteri (una stringa, come ti ho detto nel primo punto) allora il confronto va fatto con la funzione apposita

    if(strcmp(*p.righe[i].cognomeNome, cognomeN)==0)

    Infine, se la ricerca ha avuto successo, dovresti terminare il ciclo e quindi uscire, ovvero

    if (*p.righe[i].cognomeNome == cognomeN)
    {
    strcpy (*nTel.telefono, *p.righe[i].telefono);
    break;
    }

  6. #6
    Originariamente inviato da oregon
    No ...

    Intanto il parametro

    char cognomeN

    non puo' essere un char perche' un nominativo non e' fatto da un solo carattere. Deve essere un puntatore a char.

    Poi, nel confronto

    if (*p.righe[i].cognomeNome == cognomeN)

    se cognomeNome e' una stringa di caratteri, non lo puoi confrontare con un singolo carattere (cognomeN). Se cognomeN e' un puntatore a caratteri (una stringa, come ti ho detto nel primo punto) allora il confronto va fatto con la funzione apposita

    if(strcmp(*p.righe[i].cognomeNome, cognomeN)==0)

    Infine, se la ricerca ha avuto successo, dovresti terminare il ciclo e quindi uscire, ovvero

    if (*p.righe[i].cognomeNome == cognomeN)
    {
    strcpy (*nTel.telefono, *p.righe[i].telefono);
    break;
    }
    Scusa, hai ragione.
    E' stato un errore di trascrizione quello della stringa nell'intestazione della funzione.

    Non mi ero accorto.

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.