Função STRDUP na linguagem C

Função STRDUP na linguagem C
Memorizar e dominar as funções que lidam com strings é muito importante porque sempre as usamos em alguma parte do programa que desenvolvemos.

As cordas são uma parte importante da programação porque são usadas para enviar mensagens ao usuário, exibir os resultados, ler os arquivos ou especificar seu caminho, entre outras coisas. Eles também são o método de entrada e saída que facilita a interação entre o usuário e o programa.

Neste artigo do Linux, você aprenderá a usar a função strdup () para duplicar as strings. Veremos a sintaxe e a descrição teórica de chamar o método, seus argumentos de entrada e saída e o tipo de dados aceito em cada caso.

Em seguida, aplicamos o que aprendemos nos exemplos práticos usando trechos e imagens de código para mostrar como usar a função strdup () para duplicar as strings.

Sintaxe da função strdup () na linguagem C

char *strdup (const char *str);

Descrição da função strdup () na linguagem C

A função strdup () duplica uma string. Esta função duplica a sequência que é apontada pelo ponteiro STR que é passado no argumento de entrada e retorna um ponteiro para a nova string como resultado.

Strdup () pertence à família de funções strxxdu (), todas destinadas a duplicar as cordas, mas cada uma delas tem um modo de chamada e funcionalidade diferente para atender às necessidades específicas do programador.

Como todas as funções de processamento de strings, strdup () é definido na “string.H ”cabeçalho. Para usá -lo, você deve incluí -lo no seu código da seguinte forma:

#incluir

Como duplicar uma string usando a função strdup () na linguagem C

Neste exemplo, usamos a função strdup () para duplicar uma string. Em seguida, usamos a função printf () para exibir os ponteiros de string "Original" e "duplicado" no console de comando.

Para fazer isso, incluímos o “stdio.H "e" String.H ”cabeçalhos em nosso código e definem os dois ponteiros de cordas dentro da função principal (). O primeiro é chamado de "original", que contém o "Exemplo para a função strdup ()Expressão. O segundo ponteiro é chamado de "duplicata", que contém o local onde a função strdup () armazena a cópia da string original.

Depois que as seqüências que o programa usa são definidas, chamamos a função strdup () e passamos o ponteiro para a string original como o argumento de entrada e o ponteiro para a string duplicada como o argumento de saída. Em seguida, usamos a função Print () para exibir os ponteiros de string "Original" e "duplicado" no console de comando. Aqui está o código para este exemplo:

#incluir
#incluir
void main ()

char* original = "Exemplo da função strDup ()";
char* duplicado;
duplicate = strdup (original);
printf ("original:%s \ n", original);
printf ("duplicado:%s \ n", duplicado);

Como vemos na figura a seguir, Strdup () duplica a string original, duplicando literalmente seu conteúdo.

Diferenças entre as funções strdup () e strndup ()

A família strxxdupx () consiste nas seguintes funções:

char *strdup (const char *s);
char *strndup (const char *s, size_t n);
char *strdupa (const char *s);
char *strndupa (const char *s, size_t n);

As funções nesta família são todas projetadas para duplicar as cordas, mas cada uma delas funciona de uma maneira diferente.

Como vimos, a função strdup () duplica completamente a string que é enviada em seu argumento de entrada e retorna uma cópia exata em seu argumento de saída.

A função strndup () duplica a string de seu argumento de entrada. Pode fazer isso de maneira completa ou parcial.

Ao contrário do strdup (), a função strndup () leva dois argumentos de entrada. O primeiro argumento é "str", que é o ponteiro da string a ser duplicado. O segundo argumento é "n", que é uma variável de tipo size_t que especifica o número de caracteres que ele copia.

No exemplo a seguir, vemos o uso da função strndup () em que apenas 8 dos caracteres da string original são duplicados.

#incluir
#incluir
void main ()

char* original = "Exemplo da função strDup ()";
char* duplicado;
size_t n = 8;
duplicate = strndup (original, n);
printf ("original:%s \ n", original);
printf ("duplicado:%s \ n", duplicado);

Como visto na figura a seguir, a função strndup () duplica um número de caracteres "n" da string original.

Erros que podem ser gerados pela função strdup ()

O erro que essa função pode gerar é que "o sistema não tem memória suficiente para executar o processo", o que é improvável nos sistemas atuais.

Este erro é definido no “errno.H ”Cabeçalho e seu código podem ser consultados através da variável Global Errno. Sua definição é enomem.

Conclusão

Neste artigo da dica do Linux, explicamos como usar a função strdup () que pertence à família de funções de processamento de string que é definido na string.h cabeçalho.

Observamos a sintaxe desta função e fornecemos uma explicação teórica sobre seu uso, seus argumentos de entrada e saída.

Para ajudá -lo a entender melhor como funciona, criamos um exemplo prático com código e imagens onde você pode ver como os ponteiros e as cordas usados ​​por essa função são criados e como a função é chamada.

Também mostramos como usar a função strndup (), outra função da família strxxdupx (), para que você saiba as diferentes possibilidades que o idioma C oferece para duplicar as strings.