ExpertiDict

C · Intermediário · Inglês · Técnico

strcpy

/ˈstɹɪŋ ˈkɑ.pi/substantivo

Função que copia uma string, incluindo o terminador nulo, para o destino. Não verifica o tamanho do destino, então estoura o buffer se a origem for maior.

Onde usar

Em code review, é um alerta: só é seguro se o tamanho da origem for comprovadamente menor que o do destino. Alternativas são snprintf, strlcpy (BSD) ou medir e usar memcpy.

Em código

char dst[8];
const char *src = "abc";
if (strlen(src) < sizeof dst)
  strcpy(dst, src); // cabe, com o '\0'

Exemplos

Replace this strcpy with snprintf, the size isn't checked.

Troque esse strcpy por snprintf, o tamanho não é checado.

strcpy copies until it finds the null byte.

O strcpy copia até achar o byte nulo.

Cuidado

Usar com origem e destino sobrepostos, o que também é comportamento indefinido.

Origem

Abreviação de string copy.

Veja também

Todos os termos de C