A biblioteca string.h

Por: Eduardo Casavella

A biblioteca string.h da linguagem C, contém uma série de funções para manipular strings.

Neste artigo veremos como:

  • Copiar strings em C usando strcpy e strncpy;
  • Concatenar strings em linguagem C usando strcat e strncat;
  • Descobrir o tamanho de uma string em C usando strlen();
  • Comparar strings em C usando strcmp();

Construiremos exemplos de programas em C para exemplificar as funções mais utilizadas.

Nas funções a seguir, utilizamos o seguinte padrão para descrever
a sintaxe:

string_destino: é a string que recebe a cópia

string_origem: é a string que contém a cadeia de caracteres que será copiada.

strcpy

Sintaxe:

strcpy(string_destino, string_origem);

Realiza a cópia do conteúdo de uma variável a outra.

Obs:Ambas devem ser strings.

#include <stdio.h>
#include <string.h> //necessário para strcpy
#include <conio.h>
int main (void)
{
	char nome[15];
	
	strcpy(nome, "Fulano de Tal");
	//strcpy(string_destino, string_origem);
	//note que a string de destino é nome
	//a string de origem é "Fulano de Tal"
	
	printf("Nome = %s", nome);
	
	getch();
	return 0;
}

Tela de execução

execução exemplo strcpy

Execução do exemplo strcpy

strncpy

Sintaxe:

strncpy(string_destino, string_origem, tamanho);

Realiza a cópia do conteúdo de uma variável a outra, porém,
deve ser especificado o tamanho a ser copiado.

Obs:Tanto a variável de destino como a de origem devem ser strings.

#include <stdio.h>
#include <string.h>//necessário para strncpy
#include <conio.h>
int main (void)
{
	char str1[8] = "Curso C";
	char str2[5];
	
	strncpy(str2, str1, 5);
	
	str2[5] = '\0';
	printf("str2 = %s\n", str2);
	
	getch();
	return 0;
}

Tela de execução

execução exemplo strncpy

Execução do exemplo strncpy

strcat

Sintaxe

strcat(string_destino, string_origem);

Realiza a concatenação do conteúdo de uma variável a outra.
Ambas devem ser strings.

//Exemplo strcat
#include <stdio.h>
#include <string.h>//necessário para strcat
#include <conio.h>
int main (void)
{
	char str[10] = "Curso";
	strcat(str, " de C");
	//Concatena a string " de C" com o conteúdo da string str
	
	printf("str = %s\n", str);
	//Será exibido curso de C
	
	getch();
	return 0;
}

Tela de execução

execução exemplo strcat

Execução do exemplo strcat

strncat

Sintaxe:

strncat(string_destino, string_origem, tamanho);

Realiza a concatenação do conteúdo de uma variável a outra,
porém, deve ser especificado o tamanho a ser concatenado.
Ambas devem ser strings.

//Exemplo strncat
#include <stdio.h>
#include <string.h>//necessário para strncat
#include <conio.h>
int main (void)
{
	char str1[20] = "Curso";
	char str2[17] = " de programacao C";
	
	strncat(str1, str2, 15);
	//concatena a string1 com 15 posições da string2
	
	printf("str1 = %s\n", str1);
	//Será exibido Curso de Programação
	
	getch();
	return 0;
}

Tela de execução

execução exemplo strncat

Execução do exemplo strncat

strlen

Sintaxe:

variável do tipo inteiro = strlen(string);

Determina o tamanho de uma string.

#include <stdio.h>
#include <string.h>//necessário para strlen
#include <conio.h>
int main (void)
{
	char str[5] = "Curso";
	int tamanho;
	
	tamanho = strlen(str);
	
	printf("O tamanho da string %s vale %d\n", str, tamanho);
	
	getch();
	return 0;
}

Tela de execução

execução exemplo strlen

Execução do exemplo strlen

strcmp

Sintaxe:

variável do tipo inteiro = strcmp(string1, string2);

Compara o conteúdo de duas strings;

Possíveis valores de retorno:

0: conteúdo das strings são iguais

< 0: conteúdo da string1 é menor do que string2

> 0: conteúdo da string1 é maior do que string2

Exemplo de programa usando strcmp:

#include <stdio.h>
#include <string.h>//necessário para strcmp

int main (void)
{
	char str1[4] = "abc";
	char str2[4] = "abd";
	int retorno;
	
	retorno = strcmp(str1, str2);
	printf("retorno = %d\n", retorno);
	//mostra o retorno da função strcmp	
	
	return 0;
}

Tela de execução

execução exemplo strcmp

Execução do exemplo strcmp

strncmp

Sintaxe:

variável do tipo inteiro = strncmp(string1, string2, tamanho);

Também faz a comparação do conteúdo de duas strings, porém, deve ser especificado o tamanho a ser comparado;

Possíveis valores de retorno:

0: conteúdo das strings são iguais

< 0: conteúdo da string1 é menor do que string2

> 0: conteúdo da string1 é maior do que string2

Exemplo de programa usando strncmp:

#include <stdio.h>
#include <string.h>//necessário para strncmp;
int main (void)
{
	char str1[15] = "Curso de C";
	char str2[15] = "Curso de Java";
	int retorno;
	
	retorno = strncmp(str1, str2, 5);
	
	printf("retorno = %d\n", retorno);
	
	return 0;
}

Tela de execução

execução exemplo strncmp

Execução do exemplo strncmp

strtok()

A função strtok() permite dividir uma string em partes.

Utiliza um ou mais delimitadores para separar a string em questão.
O retorno de strtok é um ponteiro para o início de uma substring.Caso não encontre nenhuma substring strtok retorna NULL.
O delimitador (separador) é o caracter que indica onde dividir a string.

Veja no vídeo a seguir um exemplo.

#include <stdio.h>
#include <string.h>//necessário para strtok;
int main (void)
{
	
  char texto1[50]="Fulano de Tal,Rua X.123,Centro,Cidade Y";
  char *t;
  
  t = strtok(texto1," ");
  
  while(texto1 != NULL)
  {
  	printf("%s\n",t);
  	t=strtok(NULL," ");
  }
        
  system("pause");  //pausa na tela, somente para Windows
  return(0);
}

Até a Próxima!

18 respostas a A biblioteca string.h