Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
mirv

Dúvida Em C++

Recommended Posts

aí pessoal,

tô começando a programar em c++, tô usando o c++builder, no codigo uso

std::string só que para colocar esse conteudo desse string em um label por exemplo tem que transformar em AnsiString, alguém sabe como faz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou, o compilador diz que não pode fazer o cast (AnsiString)string

gostaria de saber então como você trabalha com strings, já que é uma situação básica em programas.

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma opção é usar tudo AnsiString

OU faça assim...

string s;

AnsiString asd;

asd = s.c_str();

A função c_str retorna a string C equivalente, daí deve funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu funcionou, a proposito como eu poderia trabalhar com string de C ao invés de std::strings ou AnsiString.

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por mirv@29 jun 2004, 21:28

valeu funcionou, a proposito como eu poderia trabalhar com string de C ao invés de std::strings ou AnsiString.

valeu

String em C é usando as funções strlen(), strcmp(), é complicado, não vale a pena mais...

Usando as strings C++ (std::string, AnsiString) é bem melhor, tipo, dá pra somar strings, etc...

Uma string em C é basicamente um vetor de chars, com o último caracter = 0 (Não é '0', é 0 mesmo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro, no seu caso como usa o C++Builder você sempre vai trabalhar com AnsiString pois todos os componentes que utilizam alphanumercos só aceitam esse tipo, dependendo o banco de dados você vai se confrontar com o chamado widestring... a vantagem do AnsiString é que ele é praticamente um objeto e possui alguns métodos e propriedades que ajudam pra caramba.

exemplos de uso:

Edit1->Text = "string";

//Atribuição normal

Edit1->Text = AnsiString(variavel_caracter);

//converte variavel caracter em ansistring

Edit1->Text = AnsiString(variavel_caracter).SubString(43,2);

//pega a partir do caracter 43 dois caracteres.

Em alguns casos você vai querer utilizar alguma AnsiString em um comando de c e terá que transformar essa AnsiString em caracter, segue um exemplo de um comando e como se faz isso:

StrCat(sTemp, (TbParametrosField1->Value).c_str());

//Nesse caso passamos o campo value de um campo de uma tabela para caracter usando a função "c_str()" que vem incluída na AnsiString, essa função transformou o valor de AnsiString em caracter para que esse pudesse ser usado com a função "StrCat" que não aceita AnsiString.

StrCat(sTemp, ((AnsiString)TbParametrosField1->Value).c_str());

//Nesse outro exemplo estávamos utilizando o mesmo campo e tabela porém com o "value" do campo como WideString, como não tem uma função "c_str()" no WideString, foi preciso converter o WideString em AnsiString e usar a função "c_str" para transformar em caracter e usar na função "StrCat".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×