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:
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.
Acompanho o canal no youtube, vídeos maravilhosos e um didáctico do professor perfeito.
Primeira vez que acesso o site. Gostei bastante, de hoje em diante sempre venho aqui tirar as duvidas no site.