A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.

Apresentações semelhantes


Apresentação em tema: "Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."— Transcrição da apresentação:

1 Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

2 Manipulando strings ** Créditos: Site: Dicas BCB -

3 AnsiString O C++Builder implementa o tipo AnsiString como uma classe. Fornece vários métodos para tratamento de strings A classe AnsiString possui um bom nível de independência e flexibilidade nos controles onde é usada, uma vez que não é descendente de Tobject, permitindo-nos realizar diversas operações úteis com strings

4 AnsiString Muitos controles usam propriedades da classe AnsiString. Por exemplo, todos os controles que possuem rótulo (forms, edits, panels, labels) usam AnsiString através da propriedade Caption. Outros controles como o EditBox usam a classe AnsiString como base de seus textos (propriedade Text). Se repararmos bem, notaremos que nós já temos usado e implementado objetos AnsiString sem qualquer espécie de declaração. Em outra situação qualquer, a declaração e inicialização de uma string sempre será necessária antes do uso respectivo. A classe String é análoga a classe AnsiString Uso de typedef faz a definição

5 AnsiString A declaração de uma String é análoga à declaração de um tipo básico, porém usando a palavra AnsiString seguida de um nome válido C++. Eis um exemplo: AnsiString Pais; Também pode declarar uma variável dela com parênteses vazios, determinando a chamada do construtor da classe. Eis um exemplo: AnsiString Animal(); Depois de declará-la, pode-se determinar o valor desejado para a variável usando o nome escolhido. Eis um exemplo: AnsiString Especie; Especie = "Cachorro";

6 AnsiString Pode-se utilizar também o construtor da classe AnsiString Simbolo('T'); AnsiString Int(120); AnsiString AloTher("Alô, Thérbio"); AnsiString PtoFlut(675.15); AnsiString LongoInt( ); AnsiString DplPrec(2.15e28);

7 AnsiString Uso dos construtores para uso em componentes char Letra = 't'; Edit1 -> Text = AnsiString(Letra); um inteiro: Ou então Integer Numero = 256; Edit1->Text = AnsiString(Numero);

8 AnsiString As Strings são tratadas como um array de caracteres ATENÇÂO: Começa em 1 e não em 0 MAIS ATENÇÃO AINDA: Se usado o indice 0 gera um ERRO Exemplo mostrando o primeiro caracter da string em um Label String s = "Oi cara de boi"; Label1->Caption = s[1];

9 Funções AnsiString Principais funções-membro da classe AnsiString AnsiString& __fastcall Insert(const AnsiString& str, int index); AnsiString& __fastcall Delete(int index, int count); AnsiString& __fastcall SetLength(int newLength); Int __fastcall Pos(const AnsiString& subStr) const; AnsiString __fastcall LowerCase() const; AnsiString __fastcall UpperCase() const; AnsiString __fastcall Trim() const; AnsiString __fastcall TrimLeft() const; AnsiString __fastcall TrimRight() const; AnsiString __fastcall SubString(int index, int count) const;

10 Insert() AnsiString& __fastcall Insert(const AnsiString& str, int index); insere uma string especificada dentro de AnsiString, iniciando a inserção na posição determinada pela variável index. O exemplo abaixo leva um Label no Form. Quando o usuário dá um clique no Label, o programa providencia a inserção de uma string dentro de outra. void __fastcall TForm1::Label1Click(TObject *Sender) { AnsiString test = "O_ _está_feito"; Label1->Caption = test.Insert("grande_teste", 3); }

11 Delete() AnsiString& __fastcall Delete(int index, int count); Remove um número especificado de caracteres de uma string. Inicia a contagem para a remoção na variável especificada por index, encerrando a exclusão com a remoção do último caracter contado para completar count: void __fastcall TForm1::Label1Click(TObject *Sender) { AnsiString test = "O_grande_teste_está_feito"; Label1->Caption = test.Delete(3, 12); Label1->Caption = test.Insert(" ", 3); }

12 SetLength() AnsiString& __fastcall SetLength(int newLength); Determina um novo tamanho para a string, especificado por newLength, desde que esse novo comprimento seja menor do que o tamanho inicial. SetLength não pode aumentar o tamanho da string: void __fastcall TForm1::Label1Click(TObject *Sender) { AnsiString test = "O_grande_teste_está_feito"; Label1->Caption = test.SetLength(14); }

13 Pos() int __fastcall Pos(const AnsiString& subStr) const; Retorna a posição do primeiro caracter de uma substring especificada na string. Se a substring não for encontrada na string, Pos() retorna zero. void __fastcall TForm1::Label1Click(TObject *Sender) { AnsiString test = "O_grande_teste_está_feito"; Label1->Caption = test.Pos("está"); }

14 LowerCase() e UperCase() AnsiString __fastcall LowerCase() const; AnsiString __fastcall UpperCase() const;LowerCase() Transforma todas as letras da string para letras minúsculas e UpperCase() transforma todas para maiúsculas: void __fastcall TForm1::Label1Click(TObject *Sender) { AnsiString test = "O_grande_TESTE_está_FEITO"; Label1->Caption = test; Label2->Caption = test.LowerCase(); Label3->Caption = test.UpperCase(); }

15 Trim(), TrimLeft() e TrimRight() AnsiString __fastcall Trim() const; AnsiString __fastcall TrimLeft() const; AnsiString __fastcall TrimRight() const; Podemos usar essas funções-membro para eliminar caracteres em branco no início (TrimLeft()), no final (TrimRight()) e no início e no final da string (Trim()): void __fastcall TForm1::Label1Click(TObject *Sender) { Label1->Color = clYellow; Label2->Color = clYellow; Label3->Color = clYellow; Label4->Color = clYellow; AnsiString test = " O grande teste está feito "; Label1->Caption = test; Label2->Caption = test.Trim(); Label3->Caption = test.TrimLeft(); Label4->Caption = test.TrimRight(); }

16 Substring() AnsiString __fastcall SubString(int index, int count) const; Retorna uma substring especificada de uma string. A substring inicia a contagem dos caracteres em index e termina de contá-los em count. Exemplo: // Coloca uma string em Edit1 Edit1 -> Text = "Meu pai se chama Julio Alves"; // Declara e inicializa a variável Frase com a string contida no texto de em Edit1 AnsiString Frase = Edit1 ->Text; /* Declara e inicializa a variável MeuPai com a string que começa no caracter 18 e termina no 28 de Frase*/ AnsiString MeuPai = Frase.SubString(18, 28); // Concatena string com MeuPai, imprimindo no Label1 Label1 -> Caption = "Papai se chama " + MeuPai;

17 Length() Retorna o tamanho de uma string Exemplo mostrando em um Label o tamanho da string String s; s = Edit1->Text; Label1->Caption = s.Length();

18 Convertendo uma AnsiString para uma C string Existem algumas funções que exisgem o uso de uma string c (terminada com caracter null). Nesse caso precisamos fazer a conversão AnsiString aStr = Ober"; char *Text = aStr.c_str();


Carregar ppt "Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."

Apresentações semelhantes


Anúncios Google