Boneco-no-computadorAs ‘strings‘ não são main nem menos do que vetores de chars. As strings são o uso mais comum para os vetores. Devemos de nos lembrar que o último elemento das strings é sempre o ”. A forma geral para declarar uma string é a seguinte:

char nome_da_string [tamanho];

O tamanho da string deve incluir o ” do final. A biblioteca padrão do C (a biblioteca stdio.h) possui diversas funções que manipulam strings. Estas funções são úteis, pois não se pode, por exemplo, igualar duas strings:

string1=string2; /* nunca faca isto */

Fazer isto é um desastre. Quando terminar de ler a seção que trata de ponteiros vai entender porquê. As strings devem ser igualadas elemento a elemento. Quando fazemos programas que tratam de strings, muitas vezes podemos aproveitar o fato de todas as strings acabarem com ” (isto é, o número inteiro 0).

[clearboth]
[toggle title=”Programa para igualar o valor de Strings”]

Abaixo encontra-se um programa que tem a função de igualar duas strings (isto é, o programa copia os caracteres de uma string para o vetor da outra):

#include 
main (){
int count;
char str1[100],str2[100];
.... /* Aqui o programa le a string que sera copiada para str2 */
for (count=0;str1[count];count++)
{
str2[count]=str1[count];
}
str2[count]='';
.... /* Aqui o programa continua */
}

A condição no loop for acima é baseada no fato da string que se encontra a ser copiada terminar em ”. Este tipo de raciocínio é a base do desenvolvimento de programas em C. Tem de fazer um esforço para entender como funciona o programa acima. Quando o elemento encontrado no ‘str1[count]’ é o ”, o valor retornado para o teste condicional é falso (nulo). Desta forma a expressão que era verdadeira (não tinha resultado 0) torna-se falsa. Agora vamos falar de algumas funções básicas para manipular strings.

[/toggle]
[toggle title=”Função gets()”]

A função gets() lê uma string do teclado. A forma geral da função gets() é:

gets (nome_da_string);

O programa abaixo mostra o funcionamento da função gets():

#include 
main ()
{
char string[100];
printf ("Digite o seu nome: ");
gets (string);
printf ("nn Ola %s",string);
}

Programa 25 no C

Como o primeiro argumento da função printf() é uma string também é válido fazer o seguinte:

printf (string);

Mas isto iria imprimir apenas a string.

[/toggle]

[toggle title=”Função strcpy()”]

A forma geral da função ‘strcpy()’ é:

strcpy (string_destino,string_origem);

A função strcpy() (string copy) copia a string-origem para a string- destino. O funcionamento desta função é semelhante loop que utilizamos no início deste tutorial para copiar uma string. Esta função encontra-se na biblioteca do C ‘string.h’. Abaixo encontra-se um exemplo do uso da função strcpy():

#include 
#include 
main (){
char str1[100],str2[100],str3[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,str1);
strcpy (str3,"Voce digitou a string: ");
printf ("nn%s%s",str3,str2nn);
system("pause");
}

Programa 26 no C

[/toggle]

[toggle title=”Função strcat()”]

A função strcat() 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. Um exemplo:

#include 
#include 
main ()
{
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,"Voce digitou a string ");
strcat (str2,str1);
printf ("nn%snn",str2);
system("pause");
}

Programa 27 no C

[/toggle]

[toggle title=”Função strlen()”]

A forma geral da função strlen() é a seguinte:

strlen (string);

A função strlen() retorna o comprimento da string fornecida. O terminador nulo ” não é contado. Isto quer dizer que o comprimento do vetor da string é o valor retornado pela função strlen() mais 1 (um). Abaixo encontra-se um exemplo do uso da função strlen().

#include 
#include 
main (){
int size;
char str[100];
printf ("Digite uma string: ");
gets (str);
size=strlen(str);
printf ("nnA string que voce digitou tem tamanho %dnn",size);
system("pause");
}

Programa 28 no C

Não se esqueça de utilizar a biblioteca ‘string.h‘.

[/toggle]

[toggle title=”Função strcmp()”]

A forma geral da função ‘strcmp()‘ é a seguinte:

strcmp (string1,string2);

A função strcmp() compára a string 1 com a string 2. Se as duas forem iguais a função retorna zero. Se elas forem diferentes a função retorna um valor diferente de zero. Abaixo encontra-se um exemplo da função ‘strcmp()‘:

#include 
#include 
main (){
char str1[100],str2[100];
printf ("Digite uma string: ");
gets (str1);
printf ("nnDigite outra string: ");
gets (str2);
if (strcmp(str1,str2)){
/*Se as strings forem diferentes a expressao do comando if vai ser verdadeira*/
printf ("nnAs duas strings sao diferentes.nn");
}else{
printf ("nnAs duas strings sao iguais.nn");
}
/*Se as strings forem iguais a expressao do comando if vai ser falsa*/
system("pause");
}

Programa 29 no C

[/toggle]

Gostou do tutorial? Então deixe um comentário abaixo!

Anúncios