Módulo IV Strings ► Definição: Uma String é um conjunto de caracteres armazenados num array (vector). ► Não confundir caracteres com strings Nota: ►As strings representamrepresentam-se entre aspas “olá olá mundo!!” mundo!!” , “GPSI” GPSI” ►Os caracteres representamrepresentam-se entre plicas ‘x’ , ‘-’ , ‘+’ 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 P.S.I - Programação e Sistemas de Informação 1 Módulo IV 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]= nome[20]=“André André”; char nome[20]={‘ nome[20]={‘A’,’n’,’d’,’r’,’é’} ’é’} char nome[] nome[]=“André André” A todas estas inicializaç inicializações o compilador acrescenta o terminador ‘\0’. 4 P.S.I - Programação e Sistemas de Informação 2 Módulo IV Strings ► Escrita/Impressão de strings Função printf() ►printf(“ printf(“hello world” world”); ►printf(“ printf(“%s” %s”, nome_da_variá nome_da_variável); vel); ►printf(“ printf(“a string é: %s” %s”, nome_da_variá nome_da_variável); vel); Função puts() ►puts(“ puts(“hello world” world”); ►puts(“ puts(“nome_da_variá nome_da_variável” vel”); 5 Strings ► Leitura de strings Função scanf() ►scanf(“ scanf(“%s” %s”, nome_da_variá nome_da_variável); vel); Nunca colocar & na leitura de strings. O scanf não lê espaç espaços. Função gets() ►gets(nome_da_variá gets(nome_da_variável); vel); 6 P.S.I - Programação e Sistemas de Informação 3 Módulo IV 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: ► ► ►A nome=“ nome=“JOEL” JOEL”; nome1=nome2; funç função que nos permite copiar valores para as strings é: strcpy(variá strcpy(variável_destino, vel_destino, variá variável_origem); vel_origem); Exemplo: ► strcpy(nome, strcpy(nome, “JOEL” JOEL”); ► strcpy(nome1, nome2); 7 Strings ► Comparar strings int strcmp(string1, string2) Exemplos: … res=strcmp(nome, res=strcmp(nome, nome1); if(res==0) puts(“ puts(“São iguais” iguais”); else puts(“ puts(“São diferentes” diferentes”); … <>0 =0 As Strings são diferentes As Strings são iguais … if(strcmp(nome, if(strcmp(nome, nome1)==0) puts(“ puts(“São iguais” iguais”); else puts(“ puts(“São diferentes” diferentes”); … 8 P.S.I - Programação e Sistemas de Informação 4 Módulo IV 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); tamanho=strlem(nome); … strcat(nome, strcat(nome, nome1); … strcat(nome, strcat(nome, ”mais texto” texto”); … strrev(nome); strrev(nome); … 10 P.S.I - Programação e Sistemas de Informação 5