3

文字列(char *)をCのtm構造体に解析してもらいたいのですが、それを行うための組み込み関数はありますか?

私はC99規格のANSICを参照しています。

4

2 に答える 2

11

UNIX派生システムのtime.hで使用可能なstrptime()という関数があります。と同様に使用されscanf()ます。

scanf()日付がどの形式になるかがわかっている場合は、電話を使用できます。

IE

char *dateString = "2008-12-10";
struct tm * parsedTime; 
int year, month, day; 
// ex: 2009-10-29 
if(sscanf(dateString, "%d-%d-%d", &year, &month, &day) != EOF){ 
  time_t rawTime;
  time(&rawTime);
  parsedTime = localtime(&rawTime);

  // tm_year is years since 1900
  parsedTime->tm_year = year - 1900;
  // tm_months is months since january
  parsedTime->tm_mon = month - 1;
  parsedTime->tm_mday = day;
}

それ以外は、C99の機能を知りませchar *struct tm

于 2010-04-27T15:43:02.453 に答える
6

POSIXにはstrptime()ありますが、標準Cでこれを行う方法はないと思います。

于 2010-04-27T15:44:00.573 に答える