从字符串中提取数字

时间:2011-08-15 07:23:38

标签: regex string visual-c++

我是一名java程序员,对visual c ++很新。我想从CString中提取两个整数,如下所示。

段:[1入口段]至[10 RC轴向弯曲]

我想提取不。字符串中的1和10以及它们的位置将始终位于“[”之后,但字符串中的字母数可能会有所不同。

我可以使用正则表达式吗?我发现我需要一个像“Boost”这样的库才能使用正则表达式。除了使用库之外还有一种简单的方法吗?请把你的想法告诉我。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用strtok来标记字符串,然后使用atoi从令牌中获取数字

编辑:

这非常简单,没有错误检查。

void getNumbers(CString inputString, int & number1, int & number2)
{
    char tempBuf[300];
    strcpy(tempBuf, inputString.GetBuffer());
    char * startString = strtok(tempBuf,"[");
    char * num1String = strtok(NULL,"[");
    char * num2String = strtok(NULL ,"[");
    number1 = atoi(num1String);
    number2 = atoi(num2String);
}