Oppure

Loading
07/08/10 20:14
NickoMaiden
mi è successa una cosa troppo assurda:
ho la necessità di convertire 2 variabili di tipo string in 2 array di char.
è da un pomeriggio che sto diventando scemo..
praticamente inizialmente ho usato strcpy e ho avuto problemi:


 string NUMERO="incredibile";
 string MESSAGGIO="mha...";
 char numero[]="";
 char messaggio[]="";
 strcpy(numero,NUMERO.c_str());
 strcpy(messaggio,MESSAGGIO.c_str());    
 cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;



in output ricevo:
ha...   //variabile numero
mha...  //variabile messaggio

incredibile  //variabili stringa da convertire
mha...


com'è possibile che la variabile messaggio vada completamente in numero ( tranne il primo carattere) senza essere menzionata?

ho provato allora a fare una soluzione fai da te:


 string NUMERO="incredibile";
    string MESSAGGIO="mha...";
    char numero[]="";
    char messaggio[]="";
    
    int i;
    for(i=0;NUMERO.c_str()[i]!='mi è successa una cosa troppo assurda:

ho la necessità di convertire 2 variabili di tipo string in 2 array di char.
è da un pomeriggio che sto diventando scemo..
praticamente inizialmente ho usato strcpy e ho avuto problemi:


 string NUMERO="incredibile";
 string MESSAGGIO="mha...";
 char numero[]="";
 char messaggio[]="";
 strcpy(numero,NUMERO.c_str());
 strcpy(messaggio,MESSAGGIO.c_str());    
 cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;



in output ricevo:
ha...   //variabile numero
mha...  //variabile messaggio

incredibile  //variabili stringa da convertire
mha...


com'è possibile che la variabile messaggio vada completamente in numero ( tranne il primo carattere) senza essere menzionata?

ho provato allora a fare una soluzione fai da te:


 string NUMERO="incredibile";
    string MESSAGGIO="mha...";
    char numero[]="";
    char messaggio[]="";
    
    int i;
    for(i=0;NUMERO.c_str()[i]!='{parsed_message}';i++)
    numero[i]=NUMERO.c_str()[i];
    numero[i]='{parsed_message}';
   
    for(i=0;MESSAGGIO.c_str()[i]!='{parsed_message}';i++)
    messaggio[i]=MESSAGGIO.c_str()[i];
    messaggio[i]='{parsed_message}';

    cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;


ricevendo un output IDENTICO a quello precedente.
il mio stupore è alle stelle, esiste una spiegazione logica a tutto questo?
esiste soprattutto una soluzione? :O
spero che riusciate ad aiutarmi.';i++) numero[i]=NUMERO.c_str()[i]; numero[i]='mi è successa una cosa troppo assurda:
ho la necessità di convertire 2 variabili di tipo string in 2 array di char.
è da un pomeriggio che sto diventando scemo..
praticamente inizialmente ho usato strcpy e ho avuto problemi:


 string NUMERO="incredibile";
 string MESSAGGIO="mha...";
 char numero[]="";
 char messaggio[]="";
 strcpy(numero,NUMERO.c_str());
 strcpy(messaggio,MESSAGGIO.c_str());    
 cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;



in output ricevo:
ha...   //variabile numero
mha...  //variabile messaggio

incredibile  //variabili stringa da convertire
mha...


com'è possibile che la variabile messaggio vada completamente in numero ( tranne il primo carattere) senza essere menzionata?

ho provato allora a fare una soluzione fai da te:


 string NUMERO="incredibile";
    string MESSAGGIO="mha...";
    char numero[]="";
    char messaggio[]="";
    
    int i;
    for(i=0;NUMERO.c_str()[i]!='{parsed_message}';i++)
    numero[i]=NUMERO.c_str()[i];
    numero[i]='{parsed_message}';
   
    for(i=0;MESSAGGIO.c_str()[i]!='{parsed_message}';i++)
    messaggio[i]=MESSAGGIO.c_str()[i];
    messaggio[i]='{parsed_message}';

    cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;


ricevendo un output IDENTICO a quello precedente.
il mio stupore è alle stelle, esiste una spiegazione logica a tutto questo?
esiste soprattutto una soluzione? :O
spero che riusciate ad aiutarmi.'; for(i=0;MESSAGGIO.c_str()[i]!='mi è successa una cosa troppo assurda:
ho la necessità di convertire 2 variabili di tipo string in 2 array di char.
è da un pomeriggio che sto diventando scemo..
praticamente inizialmente ho usato strcpy e ho avuto problemi:


 string NUMERO="incredibile";
 string MESSAGGIO="mha...";
 char numero[]="";
 char messaggio[]="";
 strcpy(numero,NUMERO.c_str());
 strcpy(messaggio,MESSAGGIO.c_str());    
 cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;



in output ricevo:
ha...   //variabile numero
mha...  //variabile messaggio

incredibile  //variabili stringa da convertire
mha...


com'è possibile che la variabile messaggio vada completamente in numero ( tranne il primo carattere) senza essere menzionata?

ho provato allora a fare una soluzione fai da te:


 string NUMERO="incredibile";
    string MESSAGGIO="mha...";
    char numero[]="";
    char messaggio[]="";
    
    int i;
    for(i=0;NUMERO.c_str()[i]!='{parsed_message}';i++)
    numero[i]=NUMERO.c_str()[i];
    numero[i]='{parsed_message}';
   
    for(i=0;MESSAGGIO.c_str()[i]!='{parsed_message}';i++)
    messaggio[i]=MESSAGGIO.c_str()[i];
    messaggio[i]='{parsed_message}';

    cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;


ricevendo un output IDENTICO a quello precedente.
il mio stupore è alle stelle, esiste una spiegazione logica a tutto questo?
esiste soprattutto una soluzione? :O
spero che riusciate ad aiutarmi.';i++) messaggio[i]=MESSAGGIO.c_str()[i]; messaggio[i]='mi è successa una cosa troppo assurda:
ho la necessità di convertire 2 variabili di tipo string in 2 array di char.
è da un pomeriggio che sto diventando scemo..
praticamente inizialmente ho usato strcpy e ho avuto problemi:


 string NUMERO="incredibile";
 string MESSAGGIO="mha...";
 char numero[]="";
 char messaggio[]="";
 strcpy(numero,NUMERO.c_str());
 strcpy(messaggio,MESSAGGIO.c_str());    
 cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;



in output ricevo:
ha...   //variabile numero
mha...  //variabile messaggio

incredibile  //variabili stringa da convertire
mha...


com'è possibile che la variabile messaggio vada completamente in numero ( tranne il primo carattere) senza essere menzionata?

ho provato allora a fare una soluzione fai da te:


 string NUMERO="incredibile";
    string MESSAGGIO="mha...";
    char numero[]="";
    char messaggio[]="";
    
    int i;
    for(i=0;NUMERO.c_str()[i]!='{parsed_message}';i++)
    numero[i]=NUMERO.c_str()[i];
    numero[i]='{parsed_message}';
   
    for(i=0;MESSAGGIO.c_str()[i]!='{parsed_message}';i++)
    messaggio[i]=MESSAGGIO.c_str()[i];
    messaggio[i]='{parsed_message}';

    cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;


ricevendo un output IDENTICO a quello precedente.
il mio stupore è alle stelle, esiste una spiegazione logica a tutto questo?
esiste soprattutto una soluzione? :O
spero che riusciate ad aiutarmi.'; cout<<numero<<endl<<messaggio<<endl<<endl<<NUMERO<<endl<<MESSAGGIO<<endl;


ricevendo un output IDENTICO a quello precedente.
il mio stupore è alle stelle, esiste una spiegazione logica a tutto questo?
esiste soprattutto una soluzione? :O
spero che riusciate ad aiutarmi.
aaa
07/08/10 21:45
qualcuno
Cerchi di copiare, con la strcpy, una stringa di N caratteri, in una stringa che è lunga un carattere (essendo vuota ha solo il terminatore, 'Cerchi di copiare, con la strcpy, una stringa di N caratteri, in una stringa che è lunga un carattere (essendo vuota ha solo il terminatore, '{parsed_message}').
Quindi al posto di char numero[]=""; char messaggio[]="";
metti char numero[100]; char messaggio[100]; (Al max allochi dinamicamente in base alla dimensione della stringa myStr.size())').
Quindi al posto di char numero[]=""; char messaggio[]="";
metti char numero[100]; char messaggio[100]; (Al max allochi dinamicamente in base alla dimensione della stringa myStr.size())
Ultima modifica effettuata da qualcuno 07/08/10 21:56
aaa
08/08/10 7:06
Alex
Postato originariamente da NickoMaiden:



esiste una spiegazione logica a tutto questo?


in queste cose esiste SEMPRE una soluzione logica:D:D
aaa
08/08/10 16:58
lorenzo
più che altro mi viene da domandare....perché ti servono due variabili char* ? Non puoi operare sulle std::string? Sono state fatte apposta...
aaa