Estruturas de Dados Homogêneas - STRINGS
As Strings são
vetores de chars, ou caracteres, também conhecidas como cadeia ou conjunto de
caracteres, elas possuem um caractere nulo, que geralmente é especificado como
'\0', para sinalizar o final da cadeia.
Importante:
Na declaração de
uma String deve-se sempre reservar um espaço para este caractere. Por
exemplo, para armazenar uma cadeia de 10 caracteres deve-se reservar um vetor
(string) de 11 de caracteres.
|
Declaração de Strings
A declaração geral para uma
string é:
char nome_da_string [tamanho];
Exemplos:
char nome[21]; //armazena um nome com 20 caracteres char endereco[201] //armazena um endereço com 200 caracteres
As formas mais comuns
de atribuir caracteres as string são através das funções scanf(), ou gets().
A função gets( ) lê uma string
a partir do teclado. Sintaxe: gets (nome_da_string);
#include "stdio.h"
main ( )
{
char string[100];
printf ("Digite o seu nome: ");
gets(string);
printf ("\n\n Ola %s", string);
}
Para visualizar utilização da função scanf() veja o post ->Linguagem C - printf(), scanf() e scanset.
Como já foi dito
antes uma string comporta-se como um vetor de caracteres, isso acontece graças
à criação automática que acontece na atribuição de valores a uma string.
Exemplo:
char str[] = “Linguagem C”;
Str
|
L
|
I
|
N
|
G
|
U
|
A
|
G
|
U
|
E
|
N
|
C
|
|
Índices
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
Graças a esse
comportamento das strings é possível acessar um caractere de uma string como se
estivesse acessando um item de um vetor.
Exemplo:
printf(“%c”, str[1]); // aparecerá na tela caractere ‘i’.
Contudo, para
facilitar a programação foram criadas algumas funções de manipulação de string.
As funções mais comuns são as seguintes:
Função
|
Descrição
|
strcat (dest,
orig)
|
Concatena cadeia
origem no final de destino.
|
strncat (dest,
orig, n)
|
Concatena
cadeia orig no final de dest, usando no máximo n caracteres de orig.
|
strcmp (str1,
str2)
|
Compara as duas
cadeias. Retornando zero se iguais, menor que 0 se str1 < str2, maior que
0 se str1 > str2.
|
strcmpi (str1,
str2)
|
Compara as duas
cadeias sem levar em conta maiúsculas e minúsculas
|
strlen (str)
|
Calcula o
comprimento da cadeia sem o caractere nulo.
|
strlwr (str)
|
Converte cadeia
para minúsculas.
|
strupr (str)
|
Converte cadeia
para maiúsculas.
|
strcpy (dest,
orig)
|
Copia cadeia
origem para destino.
|
puts(str)
|
Escreve a
string no dispositivo padrão de saída (vídeo) e coloca um '\n' no final.
|
Todas estas funções
estão na biblioteca string.h. O exemplos seguintes mostram exemplos
de uso das funções.
Função Puts()
#include "stdio.h"
#include "conio.h""
#include "string.h"
main ( )
{
char string[100];
printf ("Digite o seu nome: ");
gets(string);
puts (string);
getche();
}
Função strcpy()
#include "stdio.h"
#include "conio.h"
#include "string.h"
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 ("\n\n%s%s",str3,str2);
getche();
}
Função strcat()
#include "stdio.h"
#include "conio.h"
#include "string.h"
main ( ) {
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,"Voce digitou a string ");
strcat (str2,str1);
printf ("\n\n%s",str2);
getche();
}
Função
strupr( )
#include "stdio.h"
#include "conio.h"
#include "string.h"
main ( ) {
char str[100];
printf ("Entre com uma string: ");
gets (str);
printf("string digitada : %s\n",str);
printf("Convertendo para maiuscula: %s",strupr(str));
getche();
}
Função strlen
( )
#include "stdio.h"
#include "conio.h"
#include "string.h"
main ( ) {
int size;
char str[100];
printf ("Entre com uma string: ");
gets (str);
size=strlen (str);
printf ("\n\nA string que voce digitou tem tamanho %d",size);
getche();
}
Função
strcmp ( )
#include "stdio.h"
#include "conio.h"
#include "string.h"
main ()
{
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
printf ("\n\nEntre com outra string: ");
gets (str2);
if (strcmp(str1,str2))
printf ("\n\nAs duas strings sao diferentes.");
else printf ("\n\nAs duas strings sao iguais.");
getche();
}
Função strrev( )
#include "stdio.h"
#include "conio.h"
#include "string.h"
main(){
char string[20];
printf("Invertendo uma string\n");
printf("Entre com a string :");
scanf(" %[^\n]", string);
printf("Invertendo ==> %s",strrev(string));
getche();
}
Para dar continuidade aos posts sobre linguagem C, escolha um dos links abaixo:
Até bem pouco tempo atrás poderíamos mudar o mundo. Quem roubou nossa coragem? Tudo é dor... E toda dor, vem do desejo de não sentir-mos dor...
Renato Russo

0 comentários:
Postar um comentário