如何在类中初始化null终止的char数组

时间:2016-06-11 20:55:10

标签: c++ arrays class char

我想知道除了使用for循环之外,是否还有其他方法可以在类构造函数中使用null终止填充char数组。使用for循环它工作正常。但我认为应该有一个更简单的方法......或者我错了?

String::String()
{
  for (int i = 0; i < 80; i++)
       stringNew[i] = '\0';
}

2 个答案:

答案 0 :(得分:1)

如果stringNewstd::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,你得到了你需要的东西。