用空格初始化char数组

rav*_*avi 6 c c++ string char

我想要一个20个字符的NULL('\ 0')终止字符串,用空格填充.

目前我正在以下列方式进行

char foo[20];  
for (i = 0; i < num_space_req; i++)        //num_space_req < 20  
{  
    foo[i] = ' ';  
}

foo[num_space_req] = '\0';
Run Code Online (Sandbox Code Playgroud)

上面有更好的方法吗?

Oli*_*rth 16

您可以使用以下命令将数组初始化为空格:

memset(foo, ' ', num_space_req);
foo[num_space_req] = '\0';
Run Code Online (Sandbox Code Playgroud)


bam*_*s53 6

std::string foo(num_space_req,' ');
Run Code Online (Sandbox Code Playgroud)


小智 5

由于问题有一个C++标签,惯用的方法是:

std::fill(foo, foo + num_space_req, ' ');
// or
std::fill_n(foo, num_space_req, ' ');
Run Code Online (Sandbox Code Playgroud)

请注意,它在C中不起作用.