PDA

View Full Version : [c++] aiuto con strcpy


project_34
27-01-2005, 13:04
-------------------------------------
#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? :mc:

Ziosilvio
27-01-2005, 13:09
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++.

project_34
27-01-2005, 13:28
è 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 :muro: potresti postarmi un esempio veloce funzionante dovendo confrontare string a con string b? grazie a chi mi risponderà :D

anx721
27-01-2005, 15:05
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