2015-10-13 51 views
-1

我正在討論一些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。我想知道在這裏搜索哪個特殊字符或符號?如何找到它?

感謝,

回答

1

\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