-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「dd/mm/yyyy」の形式であると予想されます

基本的に、作成部分にいくつか問題があります.2013年2月11日の入力を作成する際に助けが必要です.このデータはポインタに追加され、02などのブロックで表示する必要があります.日付は11、月は11、年は2013...ここから続ける方法はありますか? 私はmalloc関数を使用する必要がありますか?

4

3 に答える 3

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;
}  
于 2013-10-14T07:54:53.407 に答える
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;
}
于 2013-10-14T07:54:54.813 に答える