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