簡體   English   中英

在C中將字符串轉換為struct tm

[英]Converting string to struct tm in C

我正在嘗試將字符串轉換為struct tm。 下面是我的代碼...。我在編譯時遇到此錯誤,但不確定如何/如何更改行以使其正常工作。

v245-2%g ++ prog1.c prog1.c:在函數char* calcage(char**, char**)': prog1.c:143: error: cannot convert在賦值中將char *' char* calcage(char**, char**)': prog1.c:143: error: cannot convert為`tm *'

char* calcage(char **individual, char **age)
  {
    time_t time_raw_format;
    struct tm * time_struct;
    char *birthday = (char *)malloc(50*sizeof(char));
    struct tm * birthparse;
    struct tm * birth_struct;

    char buf [100];

    time ( &time_raw_format );
    time_struct = localtime ( &time_raw_format );

    strftime (buf,100,"It is: %m/%d/%Y.",time_struct);
    puts (buf);

    printf("person: %s\n", *individual);

    birthday = strrchr(*individual, ',');
    birthday++;

    printf("Birthday:  %s\n", birthday);

   birthparse = strptime(birthday, "%D", birth_struct);
 }

除了我在評論中提出的問題,你所得到的是錯誤的原因是因為strptime返回char * ,而不是struct tm * ,所以要分配birthparse無效。

birth_struct應該聲明為普通結構,而不是結構體的指針,並且您應該將birth_struct的地址birth_struct strptime ,例如

struct tm birth_struct;

// ...

strptime(birthday, "%D", &birth_struct);

如果解析不成功,則從strptime返回NULL ,否則返回解析的最后一個字符的地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM