Strncpy também é conhecido como função de cópia de string. É uma função crucial que é oferecida pela biblioteca de cordas C da linguagem C. Strncpy é responsável por copiar um pedaço de conteúdo de uma corda em outro.
strncpy (string_a, string_b, 6) Copiará os 6 primeiros caracteres da string "String_B" para a string "String_a". String_a é a string para a qual o conteúdo da string é copiado. Considerando que String_B é aquele que será usado para buscar os 6 primeiros caracteres da string ou a string da qual os 6 primeiros caracteres devem ser copiados.
Caso o comprimento da string (da qual a parte da string será copiado seja menor que a string para a qual a string será copiada), ela não copiará o valor completo da string para a sequência de destino.
Sintaxe
A sintaxe para chamar strncpy () função é:
Na sintaxe acima, “Char*destin indica o destino ao qual a string deve ser armazenada. O segundo parâmetro “const char*src ” é um padrão de C que especifica que o src é um ponteiro de personagem e, no terceiro parâmetro, damos o tamanho à nossa função para definir quantos caracteres da string copiar. O segundo parâmetro não pode ser modificado, e é por isso que é constante. Nesta função, armazenamos uma string em nosso parâmetro de origem e a copiamos para qualquer destino representado como "Dest". Em seguida, dê o tamanho da nossa variável de destino para que a função copie o mesmo número de caracteres da nossa string x. Também podemos passar nulo para o parâmetro de origem.
Exemplo 1:
Neste exemplo, declaramos matrizes de dois caracteres que são x e y usando uma matriz de tamanho 20 para "x" e 5 para "y". Nós armazenamos a string "Hello World" em nossa variável X, que é a nossa variável de origem.
Depois de declarar as matrizes de nossos personagens, chamaremos nosso strncpy função para copiar nossa sequência desejada para a outra. Em strncpy, Passamos o destino das duas matrizes, bem como a matriz de origem junto com o tamanho ao qual a corda é copiada.
No código acima, Y é a nossa sequência de personagens de destino que discutimos anteriormente na introdução. Esta função tem três parâmetros: fonte, destino e comprimento. Nosso principal objetivo é copiar o valor da string que atribuímos à nossa matriz de origem "x" em nossa matriz de destino "y". Demos o comprimento da variável y como o terceiro parâmetro para que ele copie o mesmo número de caracteres que o do comprimento de y. Usando o printf () Declaração, imprimiremos a matriz copiada como saída onde %s é usado para imprimir a string do primeiro caractere para o caractere nulo “\ 0” e “y” é a matriz resultante que deve ser impressa.
Nosso código fornecerá a seguinte saída assim que for executada. Como podemos ver em nossa saída, ela não copiou toda a frase porque demos o comprimento de Y, que era apenas 5, então apenas copiou 5 caracteres da string.
Exemplo # 2:
No exemplo a seguir, primeiro inicializamos nossas matrizes de char chamadas "A" e "B" para um tamanho fixo de 6. Após a inicialização, passamos nossas matrizes para o strncpy função com o comprimento da corda à qual ela será copiada.
Quando strncpy Copia o conteúdo da fonte para o destino, ele copia a string sem encerrar o caractere nulo. Aqui, estamos especificando o tamanho do parâmetro B. Toda a string será copiada para "B". Strncpy nunca adiciona um caractere \ 0 ou nulo no final quando o tamanho da fonte é igual ao tamanho do destino, por isso temos que adicionar manualmente o caractere \ 0 ou nulo no final do nosso personagem "B".
Se dermos uma olhada em nossa saída, copiamos nosso valor de string de um personagem para outro. É por isso que temos nossa saída como "ótima".
Exemplo # 3:
Na amostra de código abaixo, estamos usando o método de copiar a matriz para um valor especificado constante. Para fazer isso, primeiro declararemos nossas duas variáveis de string usando uma matriz de caracteres para um comprimento especificado: "Stringa" com um comprimento de 20 e "Stringb" com um comprimento de tamanho 25. Não atribuímos nenhuma string à nossa matriz de origem usando o método strcpy. Vamos inserir a string manualmente na variável de origem "stringb". Em seguida, chame nossa função strncpy na qual o primeiro argumento é a variável de destino e a segunda é uma variável de origem. Mas estamos atribuindo o valor à nossa fonte também usando nosso strncpy função.
Na linha 6, estamos fazendo uma cópia completa da nossa string para atribuir o valor à nossa fonte. Depois de atribuirmos o valor, copiamos o valor Stringb para Stringa, que é o nosso destino. Damos um comprimento de 7, o que significa que ele copiará apenas os 7 primeiros caracteres da nossa string de origem.
Nós costumavamos printf () Declaração, um para imprimir nosso valor de origem e outro para imprimir nosso valor de destino. Como podemos ver em nossa saída, o valor de Stringa é de apenas 7 caracteres porque, ao copiar, demos um comprimento de 7. Stringb imprimiu a sequência completa porque usamos strcpy em vez de strncpy função que copiava toda a corda.
Conclusão
Neste guia, aprendemos sobre a função strncpy () da linguagem C. Você pode explorar mais sobre a função strncpy () da biblioteca C usando vários exemplos, você pode obter um entendimento ainda melhor implementando -o. Ele nos permitiu usar uma única string em um código várias vezes em vez de escrevê -la de novo e de novo. Apenas atribuindo -o a uma variável reduz a complexidade de repetir valores.