我創建了一個名爲Employee
的類,私有,我有一個Name
作爲string
。這裏是我的類聲明:在類的函數中創建字符串時出錯
class Employee
{
string Name;
public:
Employee();
void SetName(string);
void StringToEmployee(string);
~Employee();
}
這是StringToEmployee(string)
方法的定義:
void Employee::StringToEmployee(string s)
{
char *first = s, *end = s+strlen(s), *last = NULL;
last = find(first, end, ',');
string temp(first, last- first);
SetName(temp);
}
當我調試的行string temp(first, last- first)
出現的錯誤,它似乎編譯器不允許我構建方法中的新字符串。因爲我也改成了string temp;
,然後temp.assign(first, last-first)
。錯誤仍然存在。我怎麼能在一個方法中創建一個新的字符串?
['std :: strlen'](http://en.cppreference.com/w/cpp/string/byte/strlen)函數是一個C函數。它需要一個C空字符串作爲輸入。即一個指向'char'的指針。請嘗試使用['std :: string'函數](http://en.cppreference.com/w/cpp/string/basic_string)。 –
你究竟有什麼'string'定義爲第一位?你的[MCVE]其餘部分在哪裏(https://stackoverflow.com/help/mcve)?而且,什麼是錯誤? – Useless