Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152

    [principiante c++] Puntatori

    Nel seguente codice avrei la necessità di inserire la stringa "Tutto" nella variabile stringa.
    Come posso fare?
    p.s. Scusa per prima intendevo c++ non c#

    #include <iostream.h>


    main(){
    char stringa[15];
    char *p_x = "tutto";

    stringa = *p_x; /// ????Qual'è l'istruzione giusta?

    cout << p_x << endl;
    cout << *p_x << endl;
    cout << &p_x << endl;
    cout << stringa << endl;
    }
    andry80

  2. #2
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Sono poco esperto ma se non sbaglio dovresti fare:


    char *p_x = new *p_x[15];
    strcpy(p_x,"tutto");

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Il problema è che io ho una classe MYCLASS con un Costruttore parametrizzato.Per capirci:

    class MYCLASS{
    private:
    char stringa[15];
    public:
    MYCLASS (char *p_x){

    stringa = *p_x; /// ????Qual'è l'istruzione giusta?

    cout << p_x << endl;
    cout << *p_x << endl;
    cout << &p_x << endl;
    cout << stringa << endl;
    }
    };

    che riceve dal Main una stringa in questo modo:

    MYCLASS *provamain = new MYCLASS("tutto");


    aLA FINE vorrei che venisse visualizzato: "tutto".
    andry80

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    strcpy(stringa, "tutto");


    oppure dichiari stringa non come array ma come oggetto string:

    std::string stringa;

    e nel costruttore puoi semplicemetne fare un assegnamento:

    codice:
    #include <string>
    
    
    class MYCLASS{
    
    	std::string stringa;
    public:
    	MYCLASS(const char * p_x){
    		stringa = p_x;
    		cout << p_x << endl; 
    		cout << *p_x << endl; 
    		cout << &p_x << endl; 
    		cout << stringa << endl; 
    	}
    	
    };

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Ho provato e il compilatore non mi da errori ma non mi stampa a video "Tutto".

    #include <iostream.h>
    #include <string>

    class MYCLASS{

    std::string stringa;
    public:
    MYCLASS(const char *p_x){
    stringa = p_x;
    printf("%c",stringa);
    }

    };


    void main(){
    MYCLASS *provamain = new MYCLASS("Tutto");
    delete provamain;
    };
    andry80

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    non c'è un altro modo per arrivare allo stesso risultato senza usare string?
    andry80

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    devi decidere se usare c o usare c++...stringa è un oggetto di una classe c++ e si stampa con cout << stringa; printf(...) va usato con gli array di caratteri

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    se faccio cout << stringa
    mi dice che non riconosce l'operatore << (ho già incluso iostream)
    andry80

  9. #9
    Originariamente inviato da andry80
    Ho provato e il compilatore non mi da errori ma non mi stampa a video "Tutto".

    #include <iostream.h>
    #include <string>

    using namespace std;

    class MYCLASS{

    public:
    MYCLASS(const char *p_x){
    stringa = p_x;
    cout<<stringa;
    }

    };


    void main(){
    MYCLASS *provamain = new MYCLASS("Tutto");
    delete provamain;
    };
    così funzionerà !!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    cmq, come avrai capito, questo è solo un pezzettino del codice.
    Quello che a me serve è riuscire a far passare una stringa com parametro attraverso costruttori di classi diverse ,una base e l'altra derivata.
    Forse con l'esempio sarò più chiaro:


    nella classe base ho un costruttore e un metodo public:

    BASE_class(char *pippo){
    Open(pippo);
    }

    void Open(char *pszPath){....
    .....
    .....
    }

    nella classe derivata ho:

    class deriv_class : public BASE_class{
    private:

    BASE_class *pm_x;


    public:


    deriv_class(char *strx)
    {

    BASE_class *pm_x = new BASE_class(char *strx);
    delete pm_x;




    nel Main()
    deriv_class *pvUTM = new deriv_class("stinga.txt");
    delete pvUTM;



    Sicuramente c'è un errore da qualche parte ma a me serve passare la tringa "stringa.txt" come parametro di BASE_class().
    In poche parole, se nel main faccio l'operazione:

    BASE_class *pm_x = new BASE_class(char *strx);
    delete pm_x;

    funziona, ma passando attraverso la classe derivata no.
    Spero di essermi spiegato bene. Cmq ti ringrazio tanto Anx.
    andry80

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.