You are on page 1of 17

Strings

• Introdução

• Definição de strings.

• Criação/Declaração de strings.

• Inicialização de strings.

• Manipulação de strings.

• Exemplos.

Universidade Metodista de Angola, Departamento de Engenharias 1

um conjunto. • Uma string é um conjunto de caracteres armazenados num vector de caracteres. • Uma string é um vector de caracteres terminado com o carácter nulo – O carácter nulo é o carácter cujo o codigo ASCII vale 0. – O carácter nulo também é representado por ‘\0’. • Lembre-se que os tipos de dados básicos ou primitivos em linguagel C são: int. ou uma cadeia de caracteres. Departamento de Engenharias 2 . double e char. float. Universidade Metodista de Angola. • As strings são tipo de dados não primitivos da linguagem C para guardar uma palavra. Strings definições • Uma string é uma sequência. cujo o ultimo elemento é o carácter nulo ‘\0’.

American Standard Code Information Interchange Universidade Metodista de Angola. Departamento de Engenharias 3 . Strings Tabela ASCII .

Departamento de Engenharias 4 . char str3[4] = “Campos”. – Uma string pode ser inicializada após a sua criação. Strings Declaração e inicialização de strings • Tal como nas variáveis e vectores – Uma string pode ser inicializada no momento da sua criação. Exemplo de declaração e inicialização de strings char str1[12] = “Gustavo”. /* dá erro */ Universidade Metodista de Angola. Ao efectuar essa operação o caracter ‘\0’ é colocado automaticamente no final da cadeia de caracteres char str2[ ] = “Edna”.

Conjunto de caracteres a ser atribuído ao vector str1 Tamanho do vector str1 Nome do vector Tipo de vector. Strings Exemplo de declaração e inicialização de strings char str1[ 12 ] = “Gustavo”. Departamento de Engenharias 5 . as strings são vectores de caracteres Universidade Metodista de Angola.

O tamanho da cadeia de vectores é maior que o número de posições de memoria reservadas Reservou-se 4 posições de memória. Departamento de Engenharias 6 . e as restantes posições serão inicializadas automaticamente pelo carácter ‘\0’ st1 ‘G’ ‘u’ ‘s’ ‘t’ ‘a’ ‘v’ ‘o’ ‘\0’ ‘\0’ ‘\0’ ‘\0’ ‘\0’ 0 1 2 3 4 5 6 7 8 9 10 11 char str2[ ] = “Edna”. mas a cadeia “Campos” contem 6 caracteres Universidade Metodista de Angola. Strings Exemplo de declaração e inicialização de strings char str1[12] = “Gustavo”. O compilador reserva 4 + 1 posição de memória  4 posições para guardar os caracteres “Edna” e 1 posição para guardar o carácter ‘\0’ char str3[4] = “Campos”. O compilador reserva 12 posições de memória Como a cadeia “Gustavo” tem 7 caracteres. Dá erro de compilação. esse caracteres são guardados nas 12 posições.

ch ocupa 1 bytes . Departamento de Engenharias 7 . vs char ch = ‘A’. A variável numero ocupa 5 bytes A variável num ocupa 4 bytes em memória 4 + 1. char str[ ] = “A”. vs int num = 2009. str ocupa 2 bytes . Strings Exemplo de declaração e inicialização de strings O caracter ‘\0’ é usado para representar o fim da string Algumas Dicas char numero[5] = “2009”. em memória. caracter ’A’ . 1 byte caracter ‘\0’ . 1 byte Universidade Metodista de Angola.

Strings • Existem funções para leitura de strings do teclado: – gets() : get string – scanf() : scan formated • Existem funções para escrita de strings no ecrã: – puts() : put string – printf() : print formated Universidade Metodista de Angola. Departamento de Engenharias 8 .

exit(0).h> #include <stdlib. scanf(“%s”. print(“a string insirida é: ”). gets(str).h> #include <stdio. printf(“insira uma string: ”).h> int main(){ int main(){ /*declarações de variáveis*/ /*declarações de variáveis*/ char str[10]. puts(str).str). } printf(“%s”. } Lê a cadeia de caracteres Não tem o símbolo & “%s” permite imprimir uma string Universidade Metodista de Angola. char str[10]. str). Departamento de Engenharias 9 . Imprime a cadeia de caracteres exit(0). Strings Exemplo de um programa que lê uma string do teclado e imprime a string no ecrã Exemplo usando as funções gets e puts Exemplo usando as funções scanf e printf #include <stdio.h> #include <stdlib. puts(“a string insirida é: ”). puts(“insira uma string: ”).

– Comparação de duas strings – Procurar um caracter dentro de uma string – Procurar uma substring dentro de uma string – Etc. – Concatenar ou juntar strings. • Para usar essas funções o programador deve incluir a directiva #include <string.h> Universidade Metodista de Angola. Strings Manipulação de strings • Existem varias funções para manipulação de strings predefinidas em linguagem C. Departamento de Engenharias 10 . • A manipulação de strings envolve o seguinte: – Determinar o comprimento da string. – Copiar uma string para uma outra posição de memória.

string concatenation .substring over string .string lenght .string compare .string copy . Departamento de Engenharias 11 .concatenação de strings – strcmp . Universidade Metodista de Angola.cópia de uma string para outra – strcat .comparação de strings – strstr .calcula o comprimento de uma string – strcpy . Strings Manipulação de strings • As funções mais utilizadas para manipulação de strings predefinidas em linguagem C são as seguintes: – strlen .verifica a – Etc.

h> /* . Código . . */ } exit void exit(int code){ #include <stdlib. . .h> /* . */ } Universidade Metodista de Angola.h> /* . Código . . Strings A tabela que se segue apresenta algumas funções predefinidas em linguagem C incluindo algumas funções de manipulação de strings. char *orig){ #include <string. . . */ } putchar int putchar(int ch){ #include <stdio. . */ } strcpy char *strcpy(char *dest. . */ } strcat char *strcat(char *dest.h> /* . float y){ #include <math. Código . Nome da função Tipo de argumento e retorno Directiva pow float pow(float x. . Código . */ } strlen int strlen(char *s){ #include <string. char *orig){ #include <string.h> /* . Departamento de Engenharias 12 . Código .h> /* . . . Código . .

devolve o inteiro 7. Universidade Metodista de Angola. char *str2){ #include <string. Segundo a teoria das funções. char *str2){ #include <string. Código . não é importante saber o conteúdo ou o código de cada função predefinida. . Strings Nome da função Tipo de argumento e retorno Directiva strcmp int strmcp(char *str1.h> /* .h> /* . Função strlen Recebe uma string e devolve o tamanho da string ou seja o número de caracteres que constitui a string excluindo o caracter ‘\0’. */ } As funções já estão predefinidas. */ } strstr char *strstr(char *str1. Exemplo: strlen(“Gustavo”). Departamento de Engenharias 13 . . . mas sim o que cada função faz. Código . .

Exemplo: char nome[12] = “Edna”. Exemplo: char nome[12]. /*a cadeia de caracteres resultante será “EdnaXimbi” e será guardada na variavel nome*/ Universidade Metodista de Angola. /*declaração da string*/ strcat(nome. /*declaração da string*/ strcpy(nome. /*a cadeia de caracteres “Gustavo” é copiada para string nome*/ Função strcat Essa função permite concatenar a string orig com a string dest e o resultado da concatenação é guardado na string dest . Strings Função strcpy Essa função permite copiar a string orig para a string dest. “Gustavo”). Departamento de Engenharias 14 . “Ximbi”).

Departamento de Engenharias 15 . Strings Função strcmp Essa função permite comparar duas strings. /*devolve 0*/ strcmp(nome2. /*devolve um número positivo*/ strcmp(nome1. nome1). /*declaração da string*/ int numero. A função devolve um inteiro positivo se str1 for maior alfabeticamente em relação a str2. Exemplo: char nome1[12]=“Gustavo”. /*declaração da string*/ char nome2[12]=“Campos”. strcmp(nome1. nome1). nome2). /*devolve um número negativo*/ Universidade Metodista de Angola. A função devolve um inteiro negativo se str1 for menor alfabeticamente em relação a str2. A função devolve 0 (zero) se str1 for igual a str2.

Podemos uar a função strlen para calcular o tamanho de cada string. 2. 3. 4. 3. Podemos usar a função strcmp para determinar qual das strings é maior por ordem alfabetica. Lê dois nomes do teclado. 4. Podemos usar as funções gets ou scanf para ler as duas strings do teclado. e usar as funções predefinidas de manipulação de strings. Apresenta quantos caracteres cada nome possui. Strings Exemplo de manipulação de strings Escreva um programa em Linguagem C que executa as seguinte operações: 1. Podemos usar a função strcat para concatenar as duas strings no ecrã. Apresenta a concatenação das duas strings/nomes no ecrã. Imprime os dois nomes no ecrã por ordem alfabética. 2. Departamento de Engenharias 16 . Solução: Criar duas strings para guardar os dois nomes a ser lidos. criar uma terceira string para guardar a concatenação das duas strings. 1. Universidade Metodista de Angola.

/*Escrever os nomes por ordem alfabéticas*/ n = strcmp(nome1. scanf(“%s”. Departamento de Engenharias 17 .nome2).nome2).nome1).tamanho1). scanf(“%s”. int tamanho1.nome2).nome1).nome2). printf(“\ntamanho 1: %d”.h> #include <string. if(n > 0) printf(“%s\n%s”. char nome2[10]. Universidade Metodista de Angola.nome1). printf(“\ntamanho 2: %d”. int n. printf(“a string insirida é: ”). printf(“%s\n”. /*Concatenação de strings*/ strcat(nome1. /*Leitura dos dois nomes do teclado*/ printf(“insira um nome: ”).strlen(nome2)).h> int main(){ /*Declaração das strings*/ char nome1[10]. /*Calculo do tamanho das strings*/ tamanho1 = strlen(nome1). Strings #include <stdio.nome2.h> #include <stdlib. exit(0).nome1. else printf(“%s\n%s”.