2014-01-13 140 views
0

我试图做一个函数,可以更改我的帐户的PIN号码,但无法找到正确的方式来分配新的。C++将字符串参数分配给一个字符串

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

提示:使用strcpy的还是你不使用C++ std :: string类因特殊原因函数strncpy –

+2

? http://www.cplusplus.com/reference/string/string/ – kfsone

回答

1

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

+0

strncpy在这里更安全! – poljpocket

1

没关系类,问题是如何将一个值分配给数组。

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

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

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

strncpy(pin, newPin, 5); 

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

0

试试这个:

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