【发布时间】:2015-10-21 18:30:06
【问题描述】:
我正在尝试验证用户在 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
令牌为 NULL。在 todo 中,我验证令牌不为空,但在这种情况下,即使我输入有效日期也是如此。
【问题讨论】:
-
char * input[]是指针数组的声明(如果您添加分号),这可能不是您想要的。请贴出真实代码。
标签: c validation token tokenize delimiter