检测字符串中的分隔符

问题描述:

我正在讨论一些C++代码,并且遇到了我无法理解的这段代码。需要你的帮助是相同的:检测字符串中的分隔符

int intStart = strMessage.Find("\0019=%ld"); //strMessage is of type: CString and contains a message with delimiters 
intStart++; 
int intEnd = strMessage.Find("\00110=%ld"); 
intEnd++; 

“\ 0019 =%LD”和“\ 00110 =%LD”显然是一些特殊字符或符号该代码试图在字符串中找到:strMessage。我想知道在这里搜索哪个特殊字符或符号?如何找到它?

感谢,

\001是ASCII码1的下位910只是数字的字符。

这可能有助于

http://en.cppreference.com/w/cpp/language/escape

其特殊字符或符号正在这里搜索

搜索的是以该特殊字符开头的整个子字符串,然后是该引用文本的其余部分。

+0

谢谢。但是,如果我传递一个字符串,如: – XMarshall

+0

谢谢。但是,如果我传递的字符串如下:“1^9 = 0235^35 = D^44 = 76.750000^59 = 0^10 = 165”,我上面的代码应该返回上面字符串中从“9”开始的位置(在intStart变量中)以及上一个值的位置--intEnd变量中的165。但是这两个变量都返回-1。显然'^'不是这里的分隔符,代码期望。所以问题是,我在这里失踪或做错了什么?在我的字符串中应该有什么确切的分隔符,以便代码成功。谢谢 – XMarshall

+0

我不明白你想用分隔符来做什么。另外,我认为你正在试图用'%ld'来做是错误的。我不认为'Find'会像你期望的那样进行任何智能匹配。它寻找一个确切的文字匹配。 '%ld'可以完全匹配那些字符,而不是那种格式的通用匹配。 – JSF