c - 如何从字符串中提取整数?
问题描述
#include <stdio.h>
int convert_to_minutes(int h, int m) {
int total_minutes;
total_minutes = (h * 60) + m;
return total_minutes;
}
int main(int argc, const char *argv[]) {
//char duration[257];
//scanf("%s", duration);
int hours, minutes, total_minutes;
scanf("%d:%d", &hours, &minutes);
total_minutes = convert_to_minutes(hours, minutes);
printf("\n%d\n0", total_minutes);
return 0;
}
如何从字符串中提取整数?如果传入一个字符串 like HH:MM
,我如何扫描字符串的前 2 个字母并转换为整数,然后复制最后 2 个字母MM
并转换为整数?
测试用例:
1) 输入:13:05
,输出:785
2) 输入:00:00
,输出:0
3) 输入:00:42
,输出:42
解决方案
感谢@Ely 推荐使用sscanf
#include <stdio.h>
// Function to convert to minutes
int convert_to_minutes(int h, int m) {
int total_minutes;
total_minutes = (h * 60) + m;
return total_minutes;
}
int main(int argc, const char *argv[]) {
char duration[257];
scanf("%s", duration);
int hours, minutes, total_minutes;
sscanf(duration, "%d:%d", &hours, &minutes);
total_minutes = convert_to_minutes(hours, minutes);
printf("\n%d\n", total_minutes);
return 0;
}
推荐阅读
- asp.net-core - 本地应用程序中的秘密管理
- node.js - 返回 mongodb 中的总字段数
- logstash - 从 AWS SQS 接收消息并在 AWS S3 中批量存储的 Logstash 替代方案
- r - ggadjustedcurves survminer 错误 if (xi > xj) 1L else -1L
- typeerror - TypeError: 'float' object is not callable ,当调用 time()
- python - 使用新的 azure.storage.blob 包解决文件上传超时错误
- azure - 如何在 Apache 中调试损坏的响应标头?
- flutter - 在 onPressed 添加 setState 正在清除我的 TextField (Flutter)
- r - 如何将循环结果作为 nlslm 模型的初始参数传递?
- tensorflow - 动作识别的变形金刚:资源耗尽