E-mail: roberta@ucam-campos.br Manipulação de String Introdução Em C não existe um tipo de dado STRING. No seu lugar é utilizado um vetor de caracteres. Uma string é um vetor do tipo char que termina com '\0‘ (caracter nulo). Por essa razão uma string deve conter uma posição a mais do que o número de caracteres que se deseja, por conta do ‘\0’. Constantes strings são uma lista de caracteres que aparecem entre aspas, não sendo necessário colocar o '\0', que é colocado pelo compilador. A biblioteca string.h deve ser incluída nos programas que fazem uso das rotinas de manipulação de string. Manipulação de String Declaração da String Sintaxe: char nome_da_string[tamanho]; Isto declara um vetor de caracteres (uma string) com número de posições igual a tamanho. Como temos que reservar um caractere para ser o caracter nulo, tem-se que definir o comprimento da string como sendo, no mínimo, um caractere maior que a maior string que pretendemos armazenar. Vamos supor que declaremos uma string de 7 posições, para armazenar a palavra João. Teremos: Manipulação de String String x Vetor Como a string é representado por um vetor, a mesma pode ser manipulada como tal. Exemplo: // percorre a string como vetor, mostrando células não utilizadas Char string1[10]; int x; Cin>>string1; for (x=0; x < 10; x++) { cout<<string1[x];} Manipulação de String Rotina STRCPY Objetivo: Copia o conteúdo de uma string. Sintaxe: strcpy(destino,origem); Exemplo: void main(){ char str[80]; strcpy(str,"alo"); Cout<< str; } Manipulação de String Rotina STRCAT Objetivo: Concatena duas strings. Não verifica tamanho. Sintaxe: strcat(string1,string2); Exemplo: void main() { char um[20],dois[10]; strcpy(um,"bom"); strcpy(dois," dia"); strcat(um,dois); Cout << um; // imprime bom dia } Manipulação de String Rotina STRCMP Objetivo: Compara duas strings, se forem iguais devolve 0. Sintaxe: strcmp(s1,s2); Exemplo: void main() { char s[80]; Cout << "Digite a senha:"; Cin >> s; if (strcmp(s,"laranja") == 0) cout << "senha ok \n"; else cout << "senha invalida \n"; } Manipulação de String Rotina STRLEN Objetivo: Retorna o tamanho de uma string. Sintaxe: strlen(str); Exemplo: void main() { char s[80]; Cout << "Digite uma palavra:"; Cin >> s; Cout << “Tamanho da string ”<< strlen(s) ; // percorre a string como vetor, mostrando apenas as células usadas for (x=0; x < strlen(string1); x++) { cout << " \n “ << string1[x]; } } Manipulação de String Rotina TOUPPER Objetivo: converte letra por letra em maiúsculo. Rotina implementada na bibliteca ctype.h Sintaxe: toupper( str[x] ); Exemplo: void main() { char str[80]; printf("Digite uma palavra:"); gets(str); // converte letra por letra em maiúsculo for (x=0; x < strlen(str); x++) { cout << toupper(str[x]); } // biblioteca ctype.h } Manipulação de String String x Vetor Programa que armazena nomes em um vetor #include <stdio.h> #include <string.h> void main() { char vNomes[5] [20]; //vetor de 5 posições para armazenar nomes com 20 caracteres int x; for (x=0; x < 5; x++) { cout << “Informe um nome: ”; cin >> vNomes[x]; } for (x=0; x < 5; x++) { cout << “\n ” << vNomes[x]; } }