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

    [C++] Conversione da stringa a vettore di caratteri

    Ciao a tutti, vorrei sapere se esiste una funzione per convertire una stinga (tipo string) in vettore di caratteri (char *)...
    Ero a conoscenza della funzione cstr in string.h:

    char *vet = cstr (stringa);

    ma naturalmente nn funziona (ho anche visto i sorgenti della string.h e nn c'è nulla del genere).
    Come posso fare?
    Ringrazio in anticipo chi mi risponderà.
    Experience is what you get when you don’t get what you want

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Forse QUESTO puo' esserti d'aiuto...

  3. #3
    Non so quanto possa essere giusto ma funziona
    codice:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        string s = "Sono una stringa";
        const char *c;
        c = (char*)malloc(s.size()*sizeof(char));
        c = s.c_str();
        printf("%s\n",c);
        getchar();
        return 0;
    }

  4. #4
    Grazie a tutti e 2 della pronta risposta....
    Cmq ho risolto con la c_str (e non cstr) :

    c = (char *) s.c_str();

    codice:
    #include <stdio.h>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
        string stringa = "Sono una stringa";
        char *vettore;
        vettore = (char *)stringa.c_str();
        cout << stringa << '\t' << vettore << endl;
        system ("pause");
        return 0;
    }
    
    /*  //Output
    Sono una stringa        Sono una stringa
    Premere un tasto per continuare . . .
    */
    Ciao
    Experience is what you get when you don’t get what you want

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Per essere pignoli, non dovrebbe esserci il cast.
    La funzione c_str() restituisce un puntatore a _Elem, che viene definito nel typedef della stringa

    codice:
    typedef basic_string<char> string;
    Ciò vuol dire che restituisce un char*, quindi non ci vuole il cast.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Vero, grazie...
    Experience is what you get when you don’t get what you want

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.