set(string("2005-05005"));就可以了吧。。
void set(const string &s) { int a=atoi(s.substr(0,4).c_str());}int main(){ set(string("2005-05-05")); //编译错误}
不太看的懂你想表达什么意思我觉得用字符串流可以解决这个问题 strstream