Lau*_*nce 5 c arrays string time
我不经常使用C,所以这对我来说有点棘手,尽管我确信这是一项非常简单的任务.我一直在努力研究如何做到这一点,我不认为我每次搜索都正确地说它.
我需要帮助搞清楚如何将char数组中的数字转换为整数.
基本上,我会有一个像"1:09 pm","11:12 AM","11:12 am"等字符数组.
我想弄清楚如何将这三件事分开,这样我就可以弄清楚(1)小时数,(2)分钟数,以及(3)是上午还是上午(大写与否)
到目前为止,我认为我有办法获得第一个数字:
char *time = arg[1]; // arg[1] is "1:09pm", etc
char *hours = strtok(time, ":");
int hours = atoi(hours);
Run Code Online (Sandbox Code Playgroud)
从那里,我不是100%肯定该怎么做.是否存在某种正则表达式类型解析函数,它将从":"转换为字母字符?
先感谢您!
只是建立在你开始的基础上......
char *time = arg[1]; // arg[1] is "1:09pm", etc
char *hours = strtok(time, ":ap");
char *mins = strtok(NULL, ":ap");
int ihours = atoi(hours);
int imins = atoi(mins);
if (strchr(time, 'a') == NULL) hours += 12;
Run Code Online (Sandbox Code Playgroud)
对 strtok 的第二次调用将查找您提供的标记字符串中任何字符的下一个实例。因此第二次调用将找到“a”或“p”。atoi 方法在看到 a 或 p 时将忽略字母字符。if 语句是按上午或下午调整您的工作时间。
祝你好运!
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |