Você está na página 1de 8

Estrutura de Dados

Strings
Strings (do ingls) so cadeias ou seqncias ordenadas de caracteres. Na verdade j trabalhamos com strings, mas preferimos deixar maiores explicaes para um momento em que j tivesse sido introduzido bem o conceito de vetor e lista. A linguagem C, ao contrrio de outras linguagens de programao, no possui um tipo de dados correspondente s strings; no lugar, usam-se vetores (vetores do tipo char). Em C, strings so nada mais que vetores de caracteres terminados pelo caractere nulo ('\0'). Por exemplo:

Strings
No entanto, escrever strings dessa maneira muito trabalhoso; Por isso, foi criada uma notao abreviada que equivale notao acima e elimina a necessidade de colocar o caractere terminador: Assim como nos vetores, podemos acessar e modificar elementos individuais de uma string. Podemos tambm diminuir o tamanho de uma string: uma vez que a nica marcao do tamanho o terminador \0, colocar um terminador em outro local determinar o novo final da string. No entanto, aumentar o tamanho da string mais difcil; Um cuidado especial deve ser tomado ao se usar acentos em uma string. Como existem diferentes formas de codificar caracteres acentuados, o tratamento de uma string do tipo:

pode ser diferente de uma mquina para outra.

Funes da String.h
A biblioteca padro fornece vrias funes teis para manipular strings. Para us-las, voc deve incluir o cabealho string.h no incio dos seus arquivos. strlen retorna o tamanho, em caracteres, de uma string dada. Na verdade o que strlen() faz procurar o terminador de string e calcular a distncia dele ao incio da string. Por exemplo:

strcpy copia o contedo de uma string para outra e coloca um terminador de string. Sua sintaxe strcpy (destino, origem).

Funes da String.h
Tome cuidado com strcpy(), pois se a string a ser copiada for maior que a string de destino, provavelmente voc gravar dados em lugares indesejados um problema conhecido como estouro de buffer. Para evitar esse problema, use a funo strncpy. strncpy, recebe um terceiro argumento que corresponde ao nmero mximo de caracteres a serem copiados:

strcat concatena duas strings, adicionando o contedo da segunda ao final da primeira, alm do terminador (\0). Note que a primeira string deve ter espao suficiente para conter a segunda, para que no ocorra um "estouro de buffer". Por exemplo:

Funes da String.h
Analogamente funo strncpy, existe tambm a funo strncat, onde o nmero mximo de caracteres a serem copiados o terceiro argumento. strcmp Se voc tentar criar duas strings com o mesmo contedo e compar-las como faria como nmeros, ver que elas "no so iguais". Isso ocorre porque, na verdade, o que est sendo comparado so os endereos de memria onde esto guardadas as strings. Para comparar o contedo de duas strings, voc deve usar a funo strcmp (ou suas variantes):

O valor de retorno : menor que zero se s1 for menor que s2; igual a zero se s1 e s2 so iguais; maior que zero se s1 for maior que s2.

Funes da String.h
Costuma parecer estranho dizer que uma string menor ou maior que outra; na verdade essa comparao entre a primeira letra que difere nas duas strings. Assim, se tivermos s1 = "abc" e s2 = "abd", diremos que s2 maior que s1, pois na primeira posio em que as duas strings diferem, a letra em s2 "maior". importante notar que a comparao feita por strcmp distingue maisculas de minsculas. Isto , as strings "ABC" e "abc" no so iguais para essa funo. As variantes mais usadas de strcmp so: strncmp - compara apenas os n primeiros caracteres das duas strings, sendo n um terceiro argumento. stricmp - compara duas strings sem distino entre maisculas e minsculas. A sintaxe igual de strcmp. Essa funo no faz parte da biblioteca padro, mas comumente encontrada como extenso particular de vrias delas.

Exerccios
1) Faa um programa que receba 2 strings do teclado e mostre a juno das 2 strings. 2) Desenvolver um programa que leia 3 strings com 50 posies e desenvolver os seguintes itens: ler as 3 strings; verificar qual a maior string e apresentar; agrupar as 3 strings em um nica string e apresentar. 3) Escreva um programa para inverter uma string fornecida pelo usurio.

Você também pode gostar