STRING no C: Qual o seu nome?

Introdução

Muitas linguagens de programação tipadas, tais como PASCAL e DELPHI, têm a STRING como um tipo primitivo. Outras, como o JAVA, declaram a STRING como uma classe. Mas independente da linguagem de programação a STRING é baseada na mesma estrutura, uma cadeia de caracteres. Na linguagem de programação CSTRING também existe, embora seu tratamento não seja feito de uma maneira “comum” a outras linguagens de programação. Este artigo irá aborda o uso da STRING na linguagem de programação C mostrando a sua utilização de forma prática. No próximo artigo serão abordadas as funções que a linguagem de programação C oferece para serem utilizadas com STRINGs.

Definição

Embora muitos desenvolvedores de outras linguagens de programação não percebam, uma STRING é uma estrutura que representa uma cadeia de caracteres. Os desenvolvedores da linguagem de programação C têm que absorver esse conceito o mais rápido possível, pois nessa linguagem de programação a STRING só pode ser trabalhada como um vetor.

Obs.: Na linguagem de programação C++, o desenvolvedor pode utilizar a palavra reservada string para trabalhar com STRINGs, mas o head string deve ser incluído.

Devido essa obrigatoriedade de tratar uma STRING como um vetor de caracteres, boa parte dos iniciantes na linguagem de programação C sentem como estivessem sem suas cabeças, mas durante este artigo essas dificuldades serão amenizadas.

sem_cabeca

STRING na Linguagem de Programação C

Já foi dito que na linguagem de programação C a STRING é um vetor do tipo caractere, o detalhe fica por conta da utilização obrigatória do caractere 0 (zero) para finalizar o vetor.

Em outras palavras, string é uma série de caracteres, em que cada um ocupa um byte de memória, armazenado em sequência e terminado por um byte de valor zero (‘0’). Cada caractere é um elemento independente da matriz e pode ser acessado por meio de um índice.” [MIZRAHI]

Obs.: Uma matriz pode ter mais de uma dimensão, quando a matriz tem apenas uma dimensão também pode ser chamada de vetor. Na linguagem de programação C uma matriz é vista como um vetor de vetores.

Também é dito por [MIZRAHI] que o compilado da linguagem C trata o que está entre aspas duplas como uma STRING constante, ou seja, uma constante composta por uma cadeia de caracteres.

Exemplo de utilização

O código abaixo apresenta alguns exemplos de utilização de STRING na linguagem de programação C.

Explicando o código:

Na str1, a STRING foi declarada e preenchida da maneira que qualquer outro vetor poderia ser feito na linguagem C. A diferença está por conta da última posição do vetor que utiliza o caractere de escape “\” (barra invertida) junto com o finalizador de obrigatório 0 (zero).

No vetor str2, a STRING foi declarada de forma semelhante ao vetor str1, mas nesse caso o preenchimento não utilizou o finalizador obrigatório 0 (zero), ele é incluído automaticamente no final da STRING pelo compilador.

No vetor str3 não foi informado o tamanho do vetor, isso foi deixa por conta do compilador.

No caso do vetor str4 a declaração está correta, mas a utilização irá gerar um processamento incorreto por parte do compilador, pois foi informado um tamanho 3 (três) para o vetor, mas foi incluída uma STRING de tamanho 4 (quatro).

Obs.: Diferentemente da maiorias das linguagens de programação tipadas (PASCAL, DELPHI, JAVA, etc.), a linguagem C não tem controle de tamanho de vetores, ficando por conta do desenvolvedor esse controle sobre a estrutura.

str5 não é um vetor, mas sim uma matriz (ou um vetor de vetores) que suporta três vetores de STRING de tamanho 10 (dez).

A saída do código anterior é apresentada na sequência.

Pela saída do código é possível ver que no caso dos vetores str1, str2 e str3, sempre foi mostrado o caractere que estava na primeira posição do vetor, ou no índice 0 (zero), e todo o valor do vetor.

A saída do vetor str4 deveria ser igual aos anteriores, mas como o valor informado ao mesmo foi maior que o tamanho declarado para o vetor, a saída ficou estranha, uma vez que a STRING recebida pelo vetor está diferente da STRING de saída. Os caracteres após Saida 4: J Joa estão representando caracteres aleatórios.

A matriz str5 tem uma saída parecida com os vetores str1, str2 e str3, entretanto o processo acontece sobre a STRING inserida na segunda posição da matriz, ou índice 1 (um). Perceba que é mostrado o caractere M seguido da STRING Maria, o primeiro valor foi extraído por str5[1][0], o segundo por str5[1].

Conclusão

Embora muitas linguagens de programação, como PASCAL e DELPHI, tratem uma STRING como um tipo primitivo e outras, como o JAVA, as tratem como uma classe, isso não acontece na linguagem de programação C. O artigo mostrou que uma STRING é tratada na linguagem de programação C como um vetor do tipo primitivo char.

Não obstante, os exemplos colocados nesse artigo só levaram em consideração a alimentação da STRING diretamente no código. O próximo artigo mostrará como receber uma valor informado pelo usuário e inserir o mesmo numa STRING, além de mostrar algumas funções da linguagem de programação C para essa estrutura.

Até o próximo artigo.

Bibliografia Citada

MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Pearson Prentice Hall, 2008.

Assuntos relacionados:

STRING no C: Seu nome é…

Possui mestrado em Computação Aplicada pela Universidade Estadual do Ceará (2010), especialização em Engenharia de Software pela Faculdade de Juazeiro do Norte (2010), graduação em Automática pelo Centro Federal de Educação Tecnológica do Ceará (2005). Tem experiência na área de Ciência da Computação , com ênfase em Sistemas de Computação, atuando principalmente nos seguintes temas: Desenvolvimento dos programas de computador IndSist, Store, Teacher entre outros. Desenvolvimento dos programas Mobile-Android Agenda Iterativa e Guia Cariris.Disciplinas que ministra ou ministrou no ensino superior: Linguagem de Programação, Paradigma de Programação, Estrutura de Dados, Engenharia de Software, Banco de Dados. Currículo Lattes