Como usar a função strncpy em c ++

Como usar a função strncpy em c ++
Existem muitas funções em C ++ para copiar strings ou caracteres de um lugar para outro, que são strcpy, strncpy e memcpy. Eles são distintos um do outro de acordo com suas funcionalidades. Este tutorial discutirá o strncpy () função em c++.

Qual é a função strncpy () em c++

A função strncpy () é uma função C ++ integrada que é usada para copiar uma quantidade fixa de caracteres de uma string para outra. A função precisa de três parâmetros: a string de destino que manterá os caracteres, a sequência de origem que fornecerá os caracteres e a contagem de caracteres para copiar. Se a sequência de origem for menor que o número especificado de caracteres, a sequência de destino será acolchoada com caracteres nulos para o comprimento restante.

O protótipo de uma função strncpy () é dada abaixo.

char *strncpy (char *dest, const char *src, size_t count);

Quais são os parâmetros de C ++ strncpy ()

Todos os parâmetros de strncpy () A função é explicada abaixo.

  • dest: Um ponteiro para a matriz de destino para a qual o conteúdo foi
  • SRC: Um ponteiro para a matriz de origem da qual o conteúdo é
  • contar: O maior número de caracteres que podem ser copiados da fonte para o destino.

Como funciona a função strncpy ()++

strncpy () A função aceita três argumentos: Dest, Src, e contar. Ele verifica se o src a string é terminada nula e, se sim, copia o número especificado de caracteres do src string para o dest corda. Se a contagem for menor que o comprimento do src string, os primeiros personagens da contagem foram transferidos para dest string e não são terminados nulos. Se a contagem exceder o comprimento de src, todos os personagens de src são copiados para dest, E caracteres nulos de terminação extra foram incluídos até que todos os personagens da contagem sejam escritos.

O exemplo dado ilustra o funcionamento do C++ strncpy () função.

#incluir
#incluir
usando namespace std;
int main ()

char src_str [] = "Estou escrevendo um código para strncpy";
char dest_str [60];
strncpy (dest_str, src_str, strlen (src_str));
cout<retornar 0;

Neste programa, usamos arquivo de cabeçalho porque inclui strncpy () função. Definimos duas cordas uma é src_str E o outro é dest_str. strncpy () função que retira dados de string src_str e copia para o dest_str. Aqui strlen (src_str) é usado para contar o número total de caracteres do string src_str.

O saída do programa pode ser mostrado abaixo.

Quais são os problemas de usar strncpy () em c++

  • Se não houver caráter nulo na matriz de destino ou a string não for terminada nula, nosso programa ou código poderá encontrar problemas mais cedo ou mais tarde. Uma string não terminada não nula em C ++ tornou-se código de risco que pode quebrar a qualquer momento durante a execução do programa. Pode resultar em uma falha de segmentação no programa. Como resultado, strncpy () não garante que a sequência de destino seja sempre terminada nula, tornando-o código arriscado para o programa que estamos escrevendo.
  • Esta função falha em verificar o excesso; portanto, se tentarmos copiar a sequência de origem para um destino menor em tamanho que a fonte, recebemos um erro e um comportamento indefinido.

Conclusão

Para copiar dados de uma string para outra, usamos strncpy () em C ++, que é uma função integrada em arquivo de cabeçalho. Neste artigo, discutimos a sintaxe e o trabalho do C++ strncpy função com um exemplo. Também destacamos alguns problemas devido aos quais o strncpy A função pode tornar nosso código arriscado.