2013-10-14 85 views
-2
Date *date_create(char *datestr); 
struct datestr { 
    int date; 
    int month; 
    int year; 
} 

char *datestr = (char*)malloc(sizeof(char)*size); 
  • date_create創建從datestr
  • datestr的數據結構,預計是我有形式爲「日/月/年」

基本上的創建部分的一些問題,我需要一些幫助創建讓我們說一個輸入02/11/2013然後這個數據將被添加到指針,然後我必須顯示它們的塊如02日期,11一年和2013年...任何想法如何conti從這裏開始?我將不得不使用malloc函數?創建結構並顯示它們

+0

[一本好書C](http://stackoverflow.com/問題/ 562303/the-definitive-c-book-guide-and-list)在這一點上是值得投資的。 –

+0

你根本不需要指針。編譯器會很高興地爲你分配結構或作爲返回值。 –

+0

howdo你從這裏繼續嗎?我給自己一本C書,但我仍然有點困惑 – newtocprogramming

回答

0
  • 使用strtokatoi/strtol將家人從字符串
  • 或者提取您的整數值,您可以使用scanf做到這一點

  • 使用malloc分配你的類型的結構和填充具有提取值的字段

  • 將分配的指針返回到您的結構中
0

也許這樣的事情

typedef struct 
{ 
    int day; 
    int month; 
    int year; 
} 
datestructure; 

datestructure date_create(const char *datestr) 
{ 
    datestructure ret; // return value 
    char* datestrDup = strdup(datestr); // alloc/copy 

    ret.day = strtok(datestrDup,"/"); 
    ret.month = strtok(NULL,"/"); 
    ret.year = strtok(NULL," "); 

    free(datestrDup); 
    return ret; 
} 
0

試試這個,並嘗試找出它與你的書做:

typedef struct _dates 
{ 
    int date; 
    int month; 
    int year; 
} DateStr; 

DateStr * date_create(char *datestr); 

int main(int argc, char* argv[]) 
{ 
    DateStr *result; 
    char inputString[100]; 
    printf("Enter the date: "); 

    if (gets(inputString)) 
    { 
     result = date_create(inputString); 

     if (result) 
     { 
      printf("Parsed date is Date:%d, Month:%d, Year:%d",result->date, result->month, result->year); 
     } 
    } 

    return 0; 
} 


DateStr * date_create(char *datestr) 
{ 
    DateStr * date = (DateStr *)malloc(sizeof(DateStr)); 

    if (date) 
    { 
     sscanf(datestr, "%d/%d%/%d",&date->date, &date->month, &date->year); 
    } 

    return date; 
} 
相關問題