假设我有以下声明的变量:
char mychararray[35];
Run Code Online (Sandbox Code Playgroud)
我想将数组中的每个字符设置为一个空格......我该怎么做?
我的导师告诉我我所要做的就是把
mychararray = "";
Run Code Online (Sandbox Code Playgroud)
但这根本不起作用......
我使用的是过时版本的 Visual Studio (2012),还是这只是一个错误的初始化?如果是后者,请说明如何使所有字符都为空格。
提前致谢!
您可以在声明数组时按照教师建议的方式对其进行初始化:
char mychararray[35] = "";
Run Code Online (Sandbox Code Playgroud)
它会将数组设置为空字符串。
如果你想稍后使它成为一个空字符串,那么你可以这样做
mychararray[0] = '\0';
Run Code Online (Sandbox Code Playgroud)
如果要使其成为由 34 个空格(第 35 个字符为空终止符)组成的数组,则
memset(mychararray, ' ', 34);
mychararray[34] = '\0';
Run Code Online (Sandbox Code Playgroud)
这不是初始化,而是赋值。要在声明数组时初始化数组,您可以编写:
char mychararray[35] = "";
Run Code Online (Sandbox Code Playgroud)
如果您已经有一个数组并想将其设置为零,您可以使用std::fill:
#include <algorithm>
#include <iterator>
int main()
{
char c[35] = "Hello, world!";
std::fill(std::begin(c), std::end(c), '\0');
// c will contain only zeros now.
}
Run Code Online (Sandbox Code Playgroud)
然而,C 风格的数组在现代 C++ 中并不是很流行。首选使用std::string(您可以使用clear()成员函数清除),或者std::array<char, N>如果您需要在编译时知道大小。
| 归档时间: |
|
| 查看次数: |
39288 次 |
| 最近记录: |