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
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