Strings e caracteres
Caracteres
O compilador trabalha com os caracteres constantes na code page Windows 1252 (ISO-8859-1).
A lista é composta de 256 caracteres, incluindo caracteres de controle.
␀ ␁ ␂ ␃ ␄ ␅ ␆ ␇ ␈ ␉ ␊ ␋ ␌ ␍ ␎ ␏ ␐ ␑ ␒ ␓ ␔ ␕ ␖ ␗ ␘ ␙ ␚ ␛ ␜ ␝ ␞ ␟ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ? € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Abaixo temos a implementação do tipo caractere:
Um caractere é um byte.
\ 1 byte = 8 bits
Um byte são 8 bits sequenciais de dados binários. São números sem sinal, com valores variando de 0 a 255.
Como os caracteres nada mais são do que um tipo derivado do tipo byte, é possível utilizar as mesmas operações aritméticas comuns (soma, subtração, etc).
Strings
Strings são delimitadas com aspas duplas.
Exemplo:
O servidor SMTP padrão é uma string igual a
"localhost"
.
Atribua
"José"
ao nome desta pessoa.
Se o nome desta pessoa for
"João"
, retorne.
Utilizamos aspas duplas como caractere de escape.
Exemplo:
Atribua
"Erro. A palavra chave ""
Itere
"" não foi localizada."
à mensagem de erro.
No código abaixo temos a implementação do tipo string:
Uma string é uma estrutura com
Um caractere inicial e
Um caractere final.
Sendo que
Um caractere inicial é um ponteiro [que aponta] para um byte.
Um caractere final é um ponteiro [que aponta] para um byte.
Perceba que o compilador armazena "strings" em duas partes:
Uma
estrutura
com um par de ponteiros de bytes denominadoscaractere inicial
ecaractere final
, eUm array dinâmico que contém os bytes reais da string, de forma similar à imagem abaixo:
Observação: os números no diagrama acima, são endereços fictícios.
Uma string é considerada em branco
se o caractere inicial for inexistente (ou seja, nenhuma memória foi alocada ainda) ou se o endereço do caractere final
for menor do que o endereço do caractere inicial
(o que permite ao compilador realizar pré-alocação de memória).
As strings são alocadas dinamicamente e podem ter qualquer comprimento - mas a memória de strings é gerenciada inteiramente (e de forma muito eficiente) pelo compilador, quase como se fossem alocadas estaticamente. Em outras palavras, você não precisa se preocupar com elas, pois o compilador gerencia a alocação e desalocação de forma automática.
Manipulando strings
Na Biblioteca padrão existem diversas rotinas para manipulação de strings.
Exemplos:
ATRIBUA variável PARA uma string.
ACRESCENTE algo PARA uma string.
INSIRA algo EM uma STRING antes de um caractere.
REMOVA O CARACTERE INICIAL DE uma string.
REMOVA O CARACTERE FINAL DE uma string.
PREENCHA uma string COM um CARACTERE USANDO uma quantidade.
REMOVA OS CARACTERES INICIAIS DE uma string USANDO uma quantidade.
REMOVA OS CARACTERES FINAIS DE uma string COM UMA quantidade.
REMOVE OS CARACTERES DE uma string DADA uma substring.
Você também pode alterar uma string para deixar o texto em LETRAS MAIÚSCULAS ou em letras minúsculas. (Ou alterar apenas a primeira letra para letras maiúsculas).
E você pode, é claro, obter o comprimento de uma string, em bytes.
Exemplo:
Atribua "João" para uma string.
Atribua o comprimento desta string para um número.
Além disso, você pode concatenar strings com strings — e outros tipos de dados — usando o operador junto com
ou seguido de
.
Exemplo:
Atribua o nome
junto com
o sobrenome para uma string.
Escreva "Erro #"
junto com
o número do erro
seguido de
"." no console.
Atualizado
Isto foi útil?