Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136

    [C++] - funzione che restituisce una stringa

    c'è un modo per fare una funzione che restituisce una stringa ?

    tipo la String di java?


    va bene anche una soluzione differente.
    dovrei usare char[] ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Restituire una stringa di C o C++ ?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    in C++, scusa non l'avevo scritto

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... allora qualcosa come

    codice:
    #include <string>
    
    using namespace std;
    
    string func()
    {
        string s;
    
        s = "ciao";
    
        return s;
    }

  5. #5
    Ecco una possibilità attuabile solo se si copia la stringa in un altro buffer prima di richiamare un'altra volta la funzione:
    codice:
    const char * funzione()
    {
        static char buffer[255];
         //...
        return buffer;
    }
    .
    Altra possibilità (ma bisogna sempre ricordarsi di liberare il buffer con delete [] nella funzione chiamante quando la stringa non serve più):
    codice:
    char * funzione()
    {
        char * buffer = new char[255];
         //...
        return buffer;
    }
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    devo liberare il buffer in entrambi i casi, o solo nel secondo ?

    grazie

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quelle sono stringhe classiche del C ...

  8. #8
    Solo nel secondo (usando delete []), ma tieni conto che la soluzione proposta da oregon è molto più comoda da usare.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    136
    ok, grazie a tutti!

  10. #10
    Scusate cmq potreste anche utilizzare la classe String di boost.... non credete?

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.