|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2003
Messaggi: 93
|
[c++] aiuto con strcpy
-------------------------------------
#include <iostream> #include <string.h> int main(){ string a; string b; a="fonzie"; b="ralph malph"; strcpy(a,b); cout<<a; return 0; } ------------------------------------- cannot convert ` std::string' to `char*' for argument `1' to `char* strcpy(char*, const Come faccio a fare operazioni su string,come strcpy ot strcmp?
__________________
...Time to bring it down again. Don't just call me pessimist. Try and read between the lines... |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Anzitutto, quando chiami strcpy(a,b), a punta a una costante stringa, quindi non puoi usare strcpy per modificare la memoria puntata da a, senza prima riallocare a.
Poi, prima di usare strcpy(dest,src) devi accertarti che a partire da dest sia allocato abbastanza spazio per contenere una copia della memoria a partire da src fino al primo carattere nullo. Leggi la documentazione della funzione strcpy e ripassa l'uso delle stringhe in C/C++.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2003
Messaggi: 93
|
è già da un po' che ci lavoro,con l'uso di .c_str() e const_cast <char*> anche....e in questo modo riesco a compilare ma mi fa un errore di sistema
__________________
...Time to bring it down again. Don't just call me pessimist. Try and read between the lines... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
scusa, ma se stai usando le stringhe nel senso di c++ per copiare una stringa in un'altra devi semplicemente riassegnarla:
#include <iostream> #include <string> int main(){ string a; string b; a="fonzie"; b="ralph malph"; a = b; cout<<a; return 0; } diverso è se vuoi utilizzare le stringhe alla maniera del C; in quel caso hai a che fare con array di caratteri terminati dal carattere nullo e devi seguire ciò che ti ha detto ziosilvio; in particolare in C non puoi usare string a; per dichiarare una C-stringa; questo e valido solo in c++ in cui è definita la classe string
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:10.



















