Guest Natássia Resende Postado Outubro 27, 2008 Denunciar Share Postado Outubro 27, 2008 (editado) Boa tarde!Estou fazendo um "programixo" e estou tendo um problema com strings. Não consigo passar um texto para uma função da classe.segue abaixo o programa que fiz, que só retorna 1 caractere.o que eu devo fazer para ele retornar o texto inteiro? por exemplo, quero que o usuário digite "Rua xxxx" e ele imprima isso.tentei várias coisas, só funcionou quando eu coloquei pra retornar um único caractere mesmo! =/desde já muito obrigada!class CEndereco { private: char rua; public: CEndereco (); CEndereco (char); char result () { printf("\n Rua %c ", rua); return(0); } }; CEndereco::CEndereco (char r) { rua=r; } char r; main() { cout<<"Digite a rua:"<<endl; cin>>r; CEndereco obj(r); cout<<"SAIDA"<<obj.result()<<endl; getch(); } Editado Outubro 27, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 27, 2008 Denunciar Share Postado Outubro 27, 2008 então natassia, você tem q entender q char não é string. char só ocupa um caracter mesmo. string na verdade é um array de char.você tem q declara o metodo como pontero de char e as variaveis ou tb como pontero de char, ou como array de char.exemplo:private: char *rua; ou private: char rua[30]; char *result (){ /* código */}[/code]e assim por diante. otro erro no seu metodo é q você não ta retornando a string. você ta printando e retornando 0. assim não é um retorno para o cout q você fez embaxo. imagino q o printf você tenha posto de teste, mas você tem q dar o retorno da rua pro metodo.é pra copiar string você tb não vai conseguir com o =. você tem duas opcoes, ou copia cada um dos indices do array de um pro otro, ou usa o strcpy do include string.h Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Natássia Resende Postado Outubro 28, 2008 Denunciar Share Postado Outubro 28, 2008 então natassia, você tem q entender q char não é string. char só ocupa um caracter mesmo. string na verdade é um array de char.você tem q declara o metodo como pontero de char e as variaveis ou tb como pontero de char, ou como array de char.exemplo:private: char *rua; ou private: char rua[30]; char *result () { /* código */ }e assim por diante. otro erro no seu metodo é q você não ta retornando a string. você ta printando e retornando 0. assim não é um retorno para o cout q você fez embaxo. imagino q o printf você tenha posto de teste, mas você tem q dar o retorno da rua pro metodo.é pra copiar string você tb não vai conseguir com o =. você tem duas opcoes, ou copia cada um dos indices do array de um pro otro, ou usa o strcpy do include string.hOlá!Então, eu comecei usando char rua[15], mas parece que ao passar o parâmetro pra classe, esta não aceitava! Mandei esse exemplo justamente porque só consegui fazer funcionar com 1 caractere! =/o compilador retorna o seguinte erro:" In constructor `CEndereco::CEndereco(char)': incompatible types in assignment of `char' to `char[15]' "ob3rigada! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 28, 2008 Denunciar Share Postado Outubro 28, 2008 o endereco tb tem q receber um pontero. assim:CEndereco (char*); e assim: CEndereco::CEndereco (char* r) se na hora de passar continuar dando erro, tenta converter assim: CEndereco obj((char*)r);senao então posta o codigo você esta fazendo com os arrays. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Natássia Resende
Boa tarde!
Estou fazendo um "programixo" e estou tendo um problema com strings. Não consigo passar um texto para uma função da classe.
segue abaixo o programa que fiz, que só retorna 1 caractere.
o que eu devo fazer para ele retornar o texto inteiro? por exemplo, quero que o usuário digite "Rua xxxx" e ele imprima isso.
tentei várias coisas, só funcionou quando eu coloquei pra retornar um único caractere mesmo! =/
desde já muito obrigada!
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.