Bóson Treinamentos em Ciência e Tecnologia

Introdução às Strings em Linguagem C

Como trabalhar com 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:

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;
}

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.

 

Sair da versão mobile