我正在尝试创建一个可以更改帐户密码但无法找到正确分配新帐号的功能。
class Account;
class Account{
public:
int accountNumber;
char pin[5];
double balance;
void printInfo();
void changeBalance(int n, char * p, double b);
void changePin(int n, char * p, char * newPin);
};
void Account::changePin(int n, char * p, char * newPin)
{
if((n == accountNumber) && (strcmp(p, pin) == 0))
{
//pin = newPin; //ERROR HERE
}
}
我应该不使用等号或使用某个函数/指针来分配新的引脚? 我对c ++很新,所以我还在试图弄清楚如何正确地声明/分配东西。
答案 0 :(得分:1)
您应该复制该点的内容,请尝试strcpy(pin,newPin)
答案 1 :(得分:1)
别介意这个类,问题是如何为数组赋值。
您可以一次复制一个元素:
for(unsigned int k=0; k<5; ++k)
pin[k] = newPin[k];
您可以利用这是一个 char 数组的事实,并使用strncpy
:
strncpy(pin, newPin, 5);
或者当您厌倦了char[]
时,您可以查看std::string
。
答案 2 :(得分:0)
试试这个:
if(p!=NULL)
{
strcpy(this.pin,p);
}