从string中提取int值

时间:2016-12-01 20:58:28

标签: c string

我有一个这样的传入字符串: - *DDMMYYHHMMSS# DD代表DateMM代表monthYY代表year,HH代表Hour ...

示例*021216213940#(日期:2016年12月2日时间:21:29:40)

如何从上面的给定字符串中提取值并复制到int数据类型。

int Date,Month,Year,Hours,Minutes,Seconds;

2 个答案:

答案 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