C-角色阵列填充



我想声明字符数组,然后想填充它。但是获取错误:

char line[BUFSIZE+1];
strcpy(line,"Memory is Full", sizeof(line));

错误是:

wrong number of arguments in call to strcpy. 

有其他选择可以实现吗?

如果有的话,请使用strlcpy()。它可以执行您期望strncpy()做的事情。

失败了,我建议使用snprintf(),如果您有。

strcpy()获取2个参数, strncpy()取3。

我认为您正在考虑使用strncpy,这需要目的地,来源和大小。

IE:

int main()
{
    char i[6];
    strncpy(i, "Hello", sizeof(i));
    printf("%sn", i);    
    return 0;
}
>> ./a.out
>> Hello

注意:如果您完全填充char [],则必须亲自附加'',否则strncpy()将为您做(如我的示例)。

strcpy不需要大小/长度参数。而是使用memcpy,但请将其大小(长度 1)复制而不是缓冲区的大小,或者您风险不确定的行为/segfaults。

最新更新