我想知道除了使用for循环之外,是否还有其他方法可以在类构造函数中使用null终止填充char数组。使用for循环它工作正常。但我认为应该有一个更简单的方法......或者我错了?
String::String()
{
for (int i = 0; i < 80; i++)
stringNew[i] = '\0';
}
答案 0 :(得分:1)
如果stringNew
是std::string
,您可以拨打constructor:
//Initializes 'stringNew' with 80 times '\0'
String::String() : stringNew(80, '\0') {}
如果是char[]
,您可以拨打std::fill
:
String::String()
{
std::fill(std::begin(stringNew), std::end(stringNew), '\0');
}
你也可以像你的例子一样使用循环。
答案 1 :(得分:1)
这样做:
class String
{
String() : stringNew() {}
char stringNew[40];
};
C ++使用零自动初始化向量。由于(int)'\ 0'== 0,你得到了你需要的东西。