Strings
► Definição:
Uma String é um conjunto de caracteres
armazenados num array (vector).
► Não
confundir caracteres com strings
Nota:
►As strings representam-se
“olá mundo!!” , “GPSI”
►Os caracteres
‘x’ , ‘-’ , ‘+’
entre aspas
representam-se entre plicas
1
Strings
► Uma
string é então um array de caracteres,
que termina sempre com o caracter ‘\0’,
para que desta forma seja possível
identificar o final da string.
► Exemplo:
Se armazenar a palavra “Portugal” numa string,
na realidade o que acontece é que o compilador
acrescenta um ‘\0’ no final.
2
Strings
► Sintaxe
da definição de uma variável para
armazenamento de strings
char nome_da_variável[nr_de_caracteres];
► IMPORTANTE
O nr_de_caracteres deve ser sempre o número
de caracteres necessários para a string + 1,
para o armazenamento do caracter ‘\0’
3
Strings
► Exemplo
da definição de variáveis para
armazenamento de strings:
char nome[21];
char localidade [100];
► Inicialização
de strings
char nome[20]=“André”;
char nome[20]={‘A’,’n’,’d’,’r’,’é’}
char nome[]=“André”
A todas estas inicializações o compilador acrescenta o
terminador ‘\0’.
4
Strings
► Escrita/Impressão
de strings
Função printf()
►printf(“hello
world”);
►printf(“%s”, nome_da_variável);
►printf(“a string é: %s”, nome_da_variável);
Função puts()
►puts(“hello
world”);
►puts(“nome_da_variável”);
5
Strings
► Leitura
de strings
Função scanf()
►scanf(“%s”,
nome_da_variável);
Nunca colocar & na leitura de strings.
O scanf não lê espaços.
Função gets()
►gets(nome_da_variável);
6
Strings
► Funções
para manipulação de strings
#include<string.h>
Copiar strings:
► em
C não podemos copiar strings de forma directa.
► Não pode fazer isto:
nome=“JOEL”;
► nome1=nome2;
►
►A
função que nos permite copiar valores para as strings é:
strcpy(variável_destino, variável_origem);
Exemplo:
► strcpy(nome, “JOEL”);
► strcpy(nome1, nome2);
7
Strings
► Comparar
strings
int strcmp(string1, string2)
Exemplos:
…
res=strcmp(nome, nome1);
if(res==0)
puts(“São iguais”);
else
puts(“São diferentes”);
…
<>0
=0
As Strings são diferentes
As Strings são iguais
…
if(strcmp(nome, nome1)==0)
puts(“São iguais”);
else
puts(“São diferentes”);
…
8
Strings
► Outras
funções:
int strlen(string); - devolve o tamanho da string
strcat(string1,string2); - concatena (junta) a
string2 à string1.
strrev(string); - inverte a string;
9
Strings
► Exemplos:
…
int tamanho;
tamanho=strlem(nome);
…
strcat(nome, nome1);
…
strcat(nome, ”mais texto”);
…
strrev(nome);
…
10