簡體   English   中英

在C ++中復制字符串

[英]Copy string in C++

我想這個構造函數的參數從轉換const char*std::string ,但我不知道如何為新的名稱正確地復制到名字

Player::Player(const char* name) :
        level(1),life(1),strength(1),place(0){
    char* new_player_name = new char[strlen(name) + 1];
    strcpy(new_player_name, name);
    this->player_name = new_player_name;
}

Player::Player(string name) :
        level(1),life(1),strength(1),place(0){
    string new_player_name(' ',name.length() + 1); //#1
// I didn't know how to proceed 
}

類的數據成員:

class Player {
    char* player_name;
    int level;
    int life;
    int strength;
    int place;
};

考慮將player_namestd::string

然后您的構造函數可以開始

Player::Player(const char* name) : player_name(name)
{

而且您不需要擺弄所有動態分配的char數組。

您也可以將name類型更改為const std::string&

Player::Player(const std::string& name) : player_name(name)
{

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM