难以理解C++字符串文字
下面的代码是我的程序的一部分。它不执行它说 c++ 禁止将字符串常量转换为 char*。我该如何解决这个错误?
#include <cstring>
#include <iostream>
using namespace std;
class Bank
{
private:
char name[20];
int acc;
float amount;
public:
Bank()
{
strcpy("",name);
acc = 0;
amount = 0;
}
void open(int a)
{
cout << "Enter name:";
cin >> name;
acc = a;
cout << "Enter Amount" << endl;
cin >> amount;
}
void edit(int flag, float a);
};
int main()
{
Bank B[10];
}
回答
std::strcpy("", name); 需要是 std::strcpy(name, "");
虽然,撇开这样一个事实,这std::string将是一个更好的类型name(未来的英格兰国王查尔斯蒙巴顿温莎将无法成为客户),写作
name[0] = 0;
就足够了。