我有一个字符串
string date="DD/MM/YYYY";
我如何获得三个数字
day=atoi(DD);
month=atoi(MM);
year=atoi(YYYY);
THX
答案 0 :(得分:2)
int d=0, m=0, y=0;
sscanf(date.c_str(),"%d/%d/%d",&d,&m,&y);
答案 1 :(得分:2)
使用自定义操纵器我会这样做
if (std::istringstream(date) >> std::noskipws
>> day >> slash >> month >> slash >> year) {
...
}
操纵器看起来像这样:
std::istream& slash(std::istream& in) {
if (in.peek() != '/') {
in.setstate(std::ios_base::failbit);
}
return in;
}
答案 2 :(得分:0)
或者你可以这样做,
int day = atoi(date.substr(0,2).c_str());
int month = atoi(date.substr(3,2).c_str());
int year = atoi(date.substr(6,4).c_str());
使用c_str()是因为atoi使用char *和c_str()来实现此目的。