使用strtok验证用户在C中输入的日期的问题

使用strtok验证用户在C中输入的日期的问题,c,validation,token,tokenize,delimiter,C,Validation,Token,Tokenize,Delimiter,我试图验证用户在C中输入的日期。但是,我似乎无法让strtok用“-”分隔符分隔。例如,我想验证用户是否以mm/dd/yyyy hh:mm格式正确输入了日期,其中hh是小时的2位数表示形式,mm也是小时过去的分钟数,格式为2位数 这就是我一直在做的 char* input[] //--user input char* token[];//-- used to seperate each portion and verify them individually. token = strt

我试图验证用户在C中输入的日期。但是,我似乎无法让strtok用“-”分隔符分隔。例如,我想验证用户是否以mm/dd/yyyy hh:mm格式正确输入了日期,其中hh是小时的2位数表示形式,mm也是小时过去的分钟数,格式为2位数

这就是我一直在做的

 char* input[] //--user input

 char* token[];//-- used to seperate each portion and verify them individually.

 token = strtok(input, " /-:"); //-- token is now the mm.
 ...todo

token = strtok(NULL, "/"); //---token is now the dd.
...todo

token = strtok(NULL, "/"); //---token is now the yyyy.
...todo
我一直在使用prinf令牌进行每一步验证,在我尝试到达hh之前,一切都很顺利

问题是:当我试着打电话时

token = strtok(NULL, "-") //for the hours in a valid input

令牌为空。在ToDO中,我验证令牌不是NULL,但在这种情况下,当我输入一个有效的日期时,它始终是。
if ( sscanf ( input, "%d/%d/%d-%d:%d", &mm, &dd, &yyyy, &hr, &m) == 5)

格式字符串扫描一个int、一个
'/'
、一个int、一个
'/'
、一个int、一个
'-'
、一个int、一个
':'
和一个int。如果成功扫描所有项目,返回值为5。

char*input[]
是指针数组的声明(如果添加分号,也就是说),这可能不是您想要的。请张贴真实代码。