Introdução às Strings em Linguagem C

Strings em Linguagem C

Uma string é um agrupamento de caracteres, como letras, números e símbolos. Em C, as strings são formadas e manipuladas com o emprego de várias estruturas, tais como arrays, funções e ponteiros.

Como criar e inicializar strings em C

Podemos criar e inicializar strings de várias maneiras em C. Por exemplo, podemos usar um array de caracteres mais um caractere NULL, para terminação da string. Veja o exemplo a seguir:

char nome[6] = {'F', 'a', 'b', 'i', 'o', '\0'};

O caractere NULL é representado pela sequência de escape \0 (\zero). Por conta desse caractere, o array criado terá 6 posições, em vez de 5, correspondentes aos caracteres armazenados.

A figura a seguir ilustra esse array de caracteres:

Array de caracteres em linguagem C

Outra forma de criar e inicializar uma string em C é usando uma cadeia de literais, ou string literal, que são agrupamentos de caracteres envolvidos em aspas, como podemos ver no exemplo a seguir:

char nome[] = "Fabio";

Quando atribuímos uma string literal a um array de caracteres, o número necessário de posições na memória é alocado automaticamente, incluindo o caractere de terminação NULL.

Strings e Ponteiros em C

As strings são implementadas como um ponteiro para um segmento de memória. Ou seja, o nome de uma string é na verdade um ponteiro que aponta para o endereço do primeiro caractere da string na memória.

Veja o exemplo a seguir.

char *nome = "Fabio";

Este código declara uma variável ponteiro e atribui a string literal “Fabio” para o primeiro local de memória (e seguintes) para onde a variável nome aponta. Ou seja, o ponteiro nome aponta para o primeiro caractere na string “Fabio”.

No exemplo a seguir, mostramos como uma string pode ser referenciada por meio de ponteiros, e manipulada como um array:

#include <stdio.h>
#include <locale.h>

int main (int) {

  setlocale(LC_ALL, "");
  char *nome = "Fabio";
  int x;
  printf("\nValor do ponteiro: %p\n", *nome);
  printf("\nO ponteiro aponta para: %s\n", nome);
  printf("\nOs endereços de memória de cada caractere são:\n");
  for (x=0; x<6; x++) {
    printf("%p\n",nome[x]);
  }
  for (x=0; x<6; x++) {
    printf("Valor: %c Endereço: %p\n", nome[x],nome[x]);
  }
  return 0;
}

Exemplo de uso de strings em linguagem C

Obs.: Em C, as strings não são identificadas como um tipo de dados. São apenas arrays de caracteres, ao contrário de outras linguagens, como C# ou Java, por exemplo, que implementam as strings como tipos de dados (de referência – classes, no caso).

Na próxima lição continuaremos o estudo de strings em linguagem C.

 

Sobre Fábio dos Reis (1405 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*