2014-01-13 206 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); 
}