我是一名java程序员,对visual c ++很新。我想从CString中提取两个整数,如下所示。
段:[1入口段]至[10 RC轴向弯曲]
我想提取不。字符串中的1和10以及它们的位置将始终位于“[”之后,但字符串中的字母数可能会有所不同。
我可以使用正则表达式吗?我发现我需要一个像“Boost”这样的库才能使用正则表达式。除了使用库之外还有一种简单的方法吗?请把你的想法告诉我。
非常感谢。
答案 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);
}