2017-04-02 66 views
-2

我無法弄清楚如何使用空格存儲在字符串中的輸入,所以我首先將它存儲在字符中,並且我想將它複製到字符串中。使用帶有char的字符串strcpy?

string name[2]={"Sample name"}; 
char apname[50]; 

cout << "Input Name: "; 
cin.getline(apname,sizeof(apname)); 
strcpy (apname,name[2]); 

如果有更簡單的方法可以做到這一點,請幫助我。

回答

1

這是更好的辦法:

​​

錯誤檢查,提示和重複,它會是:

for (std::string line; 
    (std::cout << "Input name: ") && std::getline(std::cin, line);) 
{ 
    std::cout << "You said: " << line << "\n"; 
} 
std::cout << "Goodbye\n"; 
+0

[演示](https://wandbox.org/permlink/In0jk2ZlxJ3dOIQl) –

1

除了運營商<<這跳過空白C++標準庫提供std::getline函數爲字符串重載。用它來代替:

std::string name; 
std::getline(cin, name); 

你的函數調用

strcpy(apname, name[2]); 

不正確,有以下幾個原因:

  • 不能陣列上直接複製的字符爲string
  • name[2]兩個項目引用數組末尾的項目。