我正在尝试使用sscanf从给定日期提取日,月,年,但它似乎不起作用。这是我的代码......
我已将日期存储在char数组中。
void dateinp(char date[])
{
char d[5];
char y[5];
char mm[5];
sscanf(date,"%s-%s-%s",d,mm,y);
printf("%s\n%s\n%s\n",d,mm,y);
}
我哪里错了?
在输入12-JAN-2015我得到:: 12-JAN-2015 -12-JAN-2015 N-二2015年 5
答案 0 :(得分:2)
您的代码位于C
,而问题标有C++
。这是C++
版本:
// accepts 12-JAN-2015
void dateinp(const string& date)
{
string d = date.substr(0, 2);
string mm = date.substr(3, 3);
string y = date.substr(7, 4);
cout << d << "/" << mm << "/" << y << endl;
}
另一个版本是:
#include <sstream>
#include <iostream>
using namespace std;
// accepts 12-JAN-2015, also accepts 2-JAN-2015 (where the day is just a single digit)
void dateinp(const string& date)
{
stringstream ss(date);
string d, mm, y;
getline(ss, d, '-');
getline(ss, mm, '-');
getline(ss, y, '-');
cout << d << "/" << mm << "/" << y << endl;
}
答案 1 :(得分:0)
int day, month, year;
sscanf(buffer, "%2d/%2d/%4d",
&month,
&day,
&year);