我有一个这样的传入字符串: - *DDMMYYHHMMSS#
DD
代表Date
,MM
代表month
,YY
代表year
,HH代表Hour
...
示例*021216213940#
(日期:2016年12月2日时间:21:29:40)
如何从上面的给定字符串中提取值并复制到int数据类型。
int Date,Month,Year,Hours,Minutes,Seconds;
答案 0 :(得分:2)
您可以使用scanf族函数,如下所示:
char *incoming = "*021216213940#";
int day, month, year, hours, minutes, seconds;
if (6 != sscanf(incoming, "*%2d%2d%2d%2d%2d%2d#", &day, &month, &year, &hours, &minutes, &seconds))
{
... /* handle invalid input here */
}
答案 1 :(得分:1)
要转换字符串的内容,您需要将其转换为(两位数)小数,即ten-based positional system。
例如,要提取前两位数字,请使用下标operator[]
,即str[1]
和str[2]
,将char
转换为int
,减去{ {1}}字符使用ASCII字符排序,最后确保您乘以'0'
的数字的正确位置:
10