300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Tagged under:

Linguagem C - Strings



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