String em C – vetor de caracteres

Por: Eduardo Casavella

O termo string serve para identificar uma sequência de caracteres.

Na prática, as strings são usadas para representar textos.

Em linguagem C, ao contrário de outras linguagens, não existe um tipo de dados string nativo.

Para representar uma string em C, devemos criar um vetor de caracteres, ou seja um vetor do tipo char.

Vejamos como declarar string em C.

Exemplo de declaração de string:

char nome_cliente[61];

Este comando cria a variável nome_cliente como um vetor de char com capacidade de armazenamento de 61 caracteres.

Ocorre, que o último caracter de uma string, deve ser sempre o caracter nulo “\0” que serve para indicar o final da string.

Sendo assim, em nosso exemplo temos 60 caracteres úteis para armazenar o nome, pois o \0 é o terminador da string e ocupa uma posição de armazenamento.

Como foram declaradas 61 posições e uma delas é ocupada pelo terminador, as outras 60 posições estão livres para armazenamento de caracteres.

Inicializando o valor de strings.

Vejamos alguns exemplos:

char nome_cliente[30] = "Fulano";
 
char nome_cliente[30] = {'F','u','l','a','n','o'};

Inicializando uma string sem definir o tamanho do vetor

char nome_cliente[] = "Fulano";

Neste caso, a quantidade de caracteres de armazenamento é calculada automaticamente de forma a ter a dimensão exata para conter a string que está sendo atribuída.

Para armazenar “Fulano”, são necessários 6 caracteres + 1 para o finalizador \0.

Então podemos dizer que

char nome_cliente[] = "Fulano";

equivale a declarar

char nome_cliente[7] = "Fulano";

Lendo uma string em C

Usando scanf

A função scanf permite fazer leitura de strings usando %s.

Em relação ao uso de scanf para armazenar string devemos observar duas coisas:

  • A função scanf realiza a leitura até encontrar um espaço, depois encerra a leitura e coloca o caracter terminador \0.
  • A variável que vai armazenar a string não necessita ser precedida por &.

Exemplo de utilização do scanf:

scanf(“%s”,nome);

Exemplo: Usando scanf para receber uma string.

#include<stdio.h>
#include<conio.h>

int main(void)
{
	char nome[61];
	
	printf("Digite seu nome: ");
	scanf("%s",nome);
	
	printf("O nome armazenado foi: %s", nome);
	
	getch();
	return 0;
}

Tela de execução

Tela de Execução exemplo 1

Tela de Execução exemplo 1

Funçao gets – (get string)

Esta função armazena tudo que foi digitado, inclusive os espaços, até que a tecla ENTER seja pressionada.

Exemplo:

printf (“Digite o nome do cliente:”);
gets(nome_cliente);

Exemplo de programa usando gets() para armazenar uma string

#include<stdio.h>
#include<conio.h>

int main(void)
{
	char nome[61];
	
	printf("Digite seu nome: ");
	gets(nome);
	
	printf("O nome armazenado foi: %s", nome);
	
	getch();
	return 0;
}

Tela de execução

Tela de execução exemplo 2

Tela de execução do exemplo 2

Observe que por definição, uma string nada mais é do que um vetor de caracteres.

Podemos percorrer o vetor normalmente, usando as mesmas estratégias usadas para vetores de números.

Exemplo: percorrendo um vetor de char

#include <stdio.h>
#include <conio.h>
int main(void)
{
	int i;
	
	//declarando e atribuindo valores no vetor de char
        //texto[7] usa 6 caracteres úteis + 1 caracter para o finalizador
	char texto[7] = "string";
	
	printf("Valor da variavel texto = %s\n", texto);
	
	//Percorrendo o vetor de char e mostrando
	//cada elemento individualmente
	for (i=0; i<6; i++)
	{
		printf("Valor do elemento %d da string = %c\n",i, texto[i]);
	}
	
	getch();
	return 0;
}

Tela de execução

Tela de execução exemplo 3

Tela de execução do exemplo 3

Até a próxima!

16 respostas a String em C – vetor de caracteres