Você está na página 1de 13

Vetores e Strings

Professor: Leandro Basmage

Uma matriz uma coleo de variveis do mesmo tipo (homognea)


que referenciada por um nome comum. Um elemento especfico em
uma matriz acessado por meio de um ndice. Em C, todas as matrizes
consistem em posies contiguas (lado a lado) na memria. O endereo
mais baixo corresponde ao primeiro elemento e o mais alto, ao ltimo
elemento. Matrizes podem ter de uma a vrias dimenses. A matriz mais
comum em C a de char (chamada de string), que simplesmente uma
matriz de caracteres terminada por um caractere nulo (\0). Essa
abordagem a strings d a C maior poder e eficincia que as outras
linguagens (Apesar de um pouco menos de praticidade).

VETORES
Um vetor um caso especial de matrizes. Um vetor nada mais que
uma matriz unidimensional. Normalmente usa-se o termo vetor, para o
caso de matrizes com apenas uma dimenso, e reserva-se o termo matriz
para indicar duas ou mais dimenses.
importante notar que vetores, matrizes bidimensionais e matrizes de
qualquer dimenso so caracterizadas por terem todos os elementos
pertencentes ao mesmo tipo de dado. Em outras palavras, uma vez
declarado que um vetor/matriz do tipo int, ele no admitir a insero
de valores do tipo float, por exemplo. Dizemos, portanto, que
vetores/matrizes so estruturas de dados homogneas. Para se declarar
um vetor podemos utilizar a seguinte forma geral:
tipo_da_varivel nome_da_varivel[tamanho];
Quando o C v uma declarao como esta ele reserva um espao na
memria suficientemente grande para armazenar o nmero de clulas
especificadas em tamanho. Por exemplo, se declararmos:

float exemplo[20]
Na linguagem C a numerao comea sempre em zero. Isto significa que,
no exemplo acima, os dados sero indexados de 0 a 19. Para acess-los
vamos escrever:
exemplo[0] exemplo[1] . . . exemplo[19]
Mas ningum o impede de escrever:
exemplo[30]....exemplo[103]
Por qu? Porque o C no verifica se o ndice que voc usou est dentro
dos limites vlidos. Este um cuidado que voc deve tomar. Se o
programador no tiver ateno com os limites de validade para os ndices
ele corre o risco de ter variveis sobrescritas ou de ver o computador
travar. Bugs terrveis podem surgir.

STRINGS
Strings so vetores de char. Nada mais e nada menos. As strings so
o uso mais comum para os vetores. Devemos apenas ficar atentos para o
fato de que as strings tm o seu ltimo elemento como um '\0'. A
declarao geral para uma string :
char nome_da_string[tamanho];
Devemos lembrar que o tamanho da string deve incluir o '\0' final. A
biblioteca padro do C possui diversas funes que manipulam strings
adequadamente. Estas funes so teis pois no se pode, por exemplo,
igualar duas strings:
string1 = string2; /* NO faa isto */
Fazer isto um desastre. Somente com um pleno entendimento de
ponteiros que possvel compreender o porqu disto. As strings devem
ser igualadas elemento a elemento.

Vamos ver agora algumas funes bsicas para manipulao de strings.


gets()
A funo gets() l uma string do teclado. Sua forma geral :
gets(nome_da_string);

strcpy()
A funo strcpy() copia a string-origem para a string-destino. Seu
funcionamento semelhante ao da rotina apresentada na seo anterior.
As funes apresentadas nestas sees esto no arquivo cabealho
string.h. Sua forma geral :
strcpy(string_destino, string_origem);

strcat()
A funo strcat() concatena (ou seja, une/junta) duas strings. Ela tem
a seguinte forma geral:
strcat(string_destino, string_origem);
A string de origem permanecer inalterada e ser anexada ao fim da
string de destino

strlen()
A funo strlen() retorna o comprimento da string fornecida. O
terminador nulo no contado. Isto quer dizer que, de fato, o
comprimento do vetor da string deve ser um a mais que o inteiro
retornado por strlen(). Sua forma geral :
strlen(string);
Um exemplo do seu uso:

strcmp()
A funo strcmp() compara duas strings. Sua forma geral :
strcmp(string1,string2);
H trs possveis valores de retorno desta funo:
-1: Caso a string1 anteceda, alfabeticamente, a string2.
0: Caso a string1 seja idntica a string2
1: Caso a string1 suceda, alfabeticamente, a string2.
Em resumo, se as duas strings forem idnticas a funo retorna zero. Se
elas forem diferentes a funo retorna um valor diferente de zero. Um
exemplo da sua utilizao:

Exerccios sobre vetores


Leia15nmerosinteirospositivosearmazeneemumvetor.Em
seguidadetermineeimprimaomaiorelementonovetor.
Entre com uma string de at 30 caracteres e imprima apenas as 4
primeiras letras.

Você também pode gostar