gpt4 book ai didi

c - 将时间字符数组转换为 C 中的整数

转载 作者:太空狗 更新时间:2023-10-29 14:57:26 24 4
gpt4 key购买 nike

我不经常使用 C,所以这对我来说有点棘手,尽管我确信这是一项非常简单的任务。我一直在努力研究如何做到这一点,但我认为每次搜索时我的措辞都不正确。

我需要帮助弄清楚如何将 char 数组中的数字转换为整数。

基本上,我会有一个字符数组,如“1:09pm”、“11:12AM”、“11:12am”等。

我想弄清楚如何将这三件事分开,以便我弄清楚(1) 小时数,(2) 分钟数,以及(3) 是上午还是下午(是否大写)

到目前为止,我认为我有办法获得第一个数字:

char *time = arg[1]; // arg[1] is "1:09pm", etc
char *hours = strtok(time, ":");
int hours = atoi(hours);

从那里开始,我不是 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;

对 strtok 的第二次调用将在您提供的标记字符串中找到任何字符的下一个实例。所以第二次调用会找到一个 'a' 或一个 'p'。 atoi 方法在遇到 a 或 p 时将忽略字母字符。 if 语句用于按上午或下午调整您的工作时间。

祝你好运!

关于c - 将时间字符数组转换为 C 中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com