Você está na página 1de 8

Curso: Engenharias Disciplina: Programao Bsica Perodo: Aula:

Professor: Michele Nasu Tomiyama Tema da Aula: Manipulao de Strings Strings Um dos tipos de arranjos que mais ocorre em C o arranjo de caracteres, ou string. C no suporta um tipo bsico string; ao invs, h uma conveno para tratamento de arranjos de caracteres que permite o uso de diversas funes de manipulao de strings na linguagem. Por conveno, C considera como uma string uma seqncia de caracteres armazenada sob a forma de um arranjo do tipo char cujo ltimo elemento o carter NULL, tipicamente representado na forma de carter, '\0'. Declarao de Strings Como visto, uma string ser representada por um arranjo (vetor) de char, logo a declarao ser: char nomeString[tamanhoString]; Ex.: char nome[100]; //a varivel nome pode armazenar at 99 caracteres. Tambm possvel declarar e atribuir um valor string: char nome[100] = "Maria"; ou char nome[100] = {M, a, r, i, a, \0}; Funes A utilizao do scanf() para ler uma string extremamente limitada, pois a mesma s consegue armazenar todos os smbolos digitados at a ocorrncia do primeiro espao em branco. Se a string tiver vrias palavras, o scanf() s conseguir armazenar a primeira palavra. Para contornar esse problema, utiliza-se a funo gets. Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string[100]; printf ("Digite o seu nome: "); gets (string); printf ("\n\n Ola %s\n",string); getch(); }

Para a utilizao das funes de String necessrio fazer a importao da biblioteca string.h: #include<string.h> Quantidade de caracteres da String A funo strlen retorna para a varivel tamanho a quantidade de caracteres de string. int tamanho = strlen(string); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string[100]; printf ("Digite o seu nome: "); gets (string); printf ("\n\n Ola %s\n",string); int tamanho = strlen(string); getch(); }

Convertendo caracteres para Maisculo A funo strupr converte todos os caracteres da string para maisculo. strupr(string); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> 2

int main (){ char string[100]; printf ("Digite o seu nome: "); gets (string); printf ("\n\nString lida: %s\n",string); strupr(string); printf("String convertida: %s",string); getch(); }

Convertendo caracteres para Minsculo A funo strlwr converte todos os caracteres da string para maisculo. strlwr(string); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string[100]; printf ("Digite o seu nome: "); gets (string); printf ("\n\nString lida: %s\n",string); strlwr(string); printf("String convertida: %s",string); getch(); }

Convertendo caracteres para um inteiro A funo atoi converte todos os caracteres da string para um valor inteiro e armazena em uma varivel (numero). Essa funo exige a utilizao da biblioteca stdlib.h. int numero = atoi(string); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> int main (){ char string[100]; printf ("Digite a string: "); gets (string); printf ("\n\nString lida: %s\n",string); int numero = atoi(string); printf("String convertida: %d",numero); getch(); }

Inverter String A funo strrev inverte todos os caracteres da string. strrev(string); Exemplo: #include <stdio.h> 4

#include<conio.h> #include<string.h> int main (){ char string[100]; printf ("Digite a string: "); gets (string); printf ("\n\nString lida: %s\n",string); strrev(string); printf("String invertida: %s",string); getch(); } Copiar String A funo strcpy copia a stringOrigem para a stringDestino. O operador de atribuio = no funciona para strings, logo, a instruo stringDestino = stringOrigem no funciona. strcpy(stringDestino, stringOrigem); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string1[100], string2[100]; printf ("Digite a string: "); gets (string1); printf ("\n\nString lida: %s\n",string1); strcpy(string2,string1); printf("String copiada: %s",string2); getch(); }

Concatenar Strings A funo strcat concatena/junta a stringOrigem no final da stringDestino. A stringOrigem permanece a mesma e a stringDestino ser a string concatenada. strcat(stringDestino, stringOrigem); 5

Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string1[100], string2[100]; printf ("Digite a string1: "); gets (string1); printf ("Digite a string2: "); gets (string2); strcat(string1,string2); printf("String concatenada: %s",string1); getch(); }

Comparar Strings A funo strcmp compara 2 strings. Se as strings forem idnticas a varivel (x) ter o valor 0. Se a 1 string for maior alfabeticamente que a 2 string a varivel (x) ter um valor >0. Se a 1 string for menor alfabeticamente que a 2 string a varivel (x) ter um valor <0. int x = strcat(string1, string2); Exemplo: #include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string1[100], string2[100]; printf ("Digite a string1: "); gets (string1); printf ("Digite a string2: "); gets (string2); int x = strcmp(string1,string2); printf("Valor: %d",x); getch(); } 6

#include <stdio.h> #include<conio.h> #include<string.h> int main (){ char string1[100], string2[100]; printf ("Digite a string1: "); gets (string1); printf ("Digite a string2: "); gets (string2); int x = strcmp(string1,string2); if(x==0){ printf("\nAs duas strings so iguais."); } else{ printf("\nAs duas strings so diferentes."); } getch(); }

#include <stdio.h> #include<conio.h> #include<string.h> int main (){ char x[100]; printf ("Digite a string1: "); gets (x); strupr(x); if(x[0]=='A'||x[0]=='E'||x[0]=='I'||x[0]=='O'||x[0]=='U'){ printf("\nA string comea com vogal."); } else{ printf("\nA string comea com consoante."); } getch(); }

Outras Funes: strncpy(string1, string2, n) copia os n primeiros caracteres da string2 para a string1. strncat(string1, string2, n) concatena os n primeiros caracteres da string2 para a string1. toascii(caracter) retorna o valor do caracter na tabela ASCII. atof(string) converte a string em um nmero real.