Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

strncpy [d/mY H:i] (atual)
laureano criada
Linha 1: Linha 1:
 +====== Função strncpy ======
  
 +Arquivo header:
 +<code c>#​include <​string.h></​code>​
 +
 +
 +----
 +
 +Sintaxe:
 +''​[[tipos_dados|char *]] strncpy( [[tipos_dados|char *]] endereçoStringDestino,​ [[const]] [[tipos_dados|char *]] endereçoStringOrigem,​ [[tipos_dados|size_t]] iQuantidade );''​
 +
 +----
 +
 +
 +A função ''​**strncpy**''​ tem o mesmo comportamento da função [[strcpy]], exceto por copiar até quantidade caracteres da string ''​endereçoStringOrigem''​ na string ''​endereçoStringDestino''​.
 +
 +<code c>
 +/* strncpy.c */
 +
 +#include <​stdio.h>​
 +#include <​string.h>​
 +
 +int main(void)
 +{
 +   char sString_1[]="​123456789\0";​
 +   char sString_2[4];​
 +   char sString_3[4];​
 +
 +   /* copia os 3 primeiros caracteres de sString_1 */
 +   ​strncpy(sString_2,​ sString_1, 3);
 +
 +   ​printf("​\nsString_1 = [%s]", sString_1);
 +   ​printf("​\nsString_2 = [%s]", sString_2);
 +
 +   /* É necessário sempre acrescentar o \0 ao final da string, pois a função ​
 +      strncpy copia até o número de caracteres indicados, e, nenhum dos 
 +      caracteres pode ser o \0 ocasionando em resultados “não controlados”. */
 +   ​sString_2[3]='​\0';​
 +   ​printf("​\nsString_2 = [%s]", sString_2);
 +
 +   /* Uma alternativa,​ é utilizar o comando memset gravar \0 em todo o espaço
 +      de memória da string */
 +   ​memset(sString_3,​ 0, sizeof(sString_3));​
 +   ​strncpy(sString_3,​ sString_1, 3);
 +   ​printf("​\nsString_3 = [%s]", sString_3);
 +   ​return 0;
 +}
 +</​code>​
 +
 + --- //​[[marcos@laureano.eti.br|Marcos Laureano]] 2009/05/10 18:53//
strncpy.txt · Última modificação: d/mY H:i por laureano
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0