Como usar a função strncpy () em C++

Como Usar A Funcao 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 uns dos outros 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 conterá os caracteres, a string de origem que fornecerá os caracteres e a contagem de caracteres a serem copiados. Se a string de origem for menor que o número especificado de caracteres, a string de destino será preenchida com caracteres nulos até o comprimento restante.

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







Caracteres * strncpy ( Caracteres * mãos const Caracteres * src, tamanho_t contar ) ;

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

Todos os parâmetros de strncpy() funções são explicadas abaixo.



  • mão: Um ponteiro para a matriz de destino para a qual o conteúdo foi
  • origem: Um ponteiro para a matriz de origem da qual o conteúdo é
  • contar: O número mais alto de caracteres que podem ser copiados da origem para o destino.

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

strncpy() função aceita três argumentos: destino, src, e contar . Ele verifica se o origem string é terminada em nulo e, se sim, copia o número especificado de caracteres do origem corda para o começar corda. Se a contagem for menor que o comprimento do origem string, os primeiros caracteres de contagem foram transferidos para começar string e não são terminados em nulo. Se a contagem exceder o comprimento de origem , todos os personagens de origem são copiados para começar , e caracteres nulos de terminação extras foram incluídos até que todos os caracteres de contagem sejam gravados.



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





#include
#include
usando namespace std ;
int principal ( )
{
Caracteres src_str [ ] = 'Estou escrevendo um código para strncpy' ;
Caracteres dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
retornar 0 ;
}

Neste programa, usamos arquivo de cabeçalho porque inclui strncpy() função. Nós definimos duas strings uma é src_str e o outro é dest_str. strncpy() função que recebe 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 com o uso de strncpy() em C++

  • Se não houver nenhum caractere nulo na matriz de destino ou se a string não tiver terminação nula, nosso programa ou código poderá encontrar problemas mais cedo ou mais tarde. Uma string terminada não nula em C++ tornou-se um código arriscado que pode quebrar a qualquer momento durante a execução do programa. Isso pode resultar em uma falha de segmentação no programa. Como resultado, strncpy() não garante que a string de destino seja sempre terminada em nulo, tornando-se um código arriscado para o programa que estamos escrevendo.
  • Essa função falha ao verificar o estouro, portanto, se tentarmos copiar a string de origem para um destino menor em tamanho que a origem, obteremos um erro e um comportamento indefinido.

Conclusão

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