C++ 将字符串参数分配给字符串

c++ assigning a string parameter to a string

本文关键字:字符串 分配 参数 C++      更新时间:2023-10-16

我正在尝试创建一个可以更改我帐户密码的功能,但无法找到分配新密码的正确方法。

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++ 相当陌生,所以我仍在尝试弄清楚如何正确声明/分配事物。

你应该复制点的内容,试试strcpy(pin,newPin)

别管类,问题是如何为数组赋值。

您可以一次复制一个元素的数组:

for(unsigned int k=0; k<5; ++k)
  pin[k] = newPin[k];

您可以利用这是一个字符数组的事实,并使用strncpy

strncpy(pin, newPin, 5);

或者当你厌倦了乱char[]你可以看看std::string

试试这个:

if(p!=NULL)
{
strcpy(this.pin,p);
}