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