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







18 respostas a A biblioteca string.h