C++ strcpy:字串賦值函數

2020-07-16 10:04:38
使用 C++ 字元陣列與使用 string 物件不同的第一種方式是,除了在定義時初始化它,不能使用賦值運算子給它賦值。換句話說,不能使用以下方式直接給 name 字元陣列賦值:

name = "Sebastian";    // 錯誤

相反,要為字元陣列賦值,必須使用一個名為 strcpy (發音為 string copy)的函數,將一個字串的內容複製到另一個字串中。在下面的程式碼行中,Cstring 是接收值的變數的名稱,而 value 則是字串常數或另一個 C 字串變數的名稱。

strcpy(Cstring, value);

下面的程式顯示了 strcpy 函數的工作原理:
// This program uses the strcpy function to copy one C-string to another.
#include <iostream>
using namespace std;

int main()
{
    const int SIZE = 12;
    char name1[SIZE], name2[SIZE];
    strcpy(name1, "Sebastian");
    cout << "name1 now holds the string " << name1 << endl;
    strcpy(name2, name1);
    cout << "name2 now also holds the string " << name2 << endl;
    return 0;
}
程式輸出結果:

name1 now holds the string Sebastian
name2 now also holds the string Sebastian