我有一個關於C++中的字符串的問題。假設我有一個unicode字符串象下面這樣:C++複製字符串的指定索引之間的任何子字符串
std::wstring S = L"NAME: STUPID";
而且上面的字符串可以像L"AGE: STUPID"
,L"BEHAVIOR: STUPID"
,L"BEHAVIOR: STUPID; NAME: ANONYMOUS"
我想從像上面字符串中提取字STUPID
。複製應從給定字的長度開始(例如,長度爲NAME
或BEHAVIOR
),並停在第一個找到的分號(;
)處。複製應該從主字符串中完成。 (例如L"NAME: STUPID"
)。
我曾嘗試:
LPCWSTR ExtractSubStringFromString(LPCWSTR & Type, LPCWSTR & String) {
std::wstring S = std::wstring(String);
if (S.find(L";") != std::wstring::npos) // MAIN STRING CONTAINS A SEMICOLON
{
std::wstring S = std::wstring(String + std::wstring(Type).length(), // << CANNOT THINK HOW TO COPY SUBSTRING HERE.
}
else { NO SEMICOLON, ONLY CAN BE A ONE WORD }
}
找到冒號'':',跳過所有可能的空格,並且您有起始位置。 –
@Someprogrammerdude我無法弄清楚如何去做。 :-( – Blueeyes789
看看['std :: wstring'](http://en.cppreference.com/w/cpp/string/basic_string)你可以使用'size()'來獲取內容的長度,'' ()'或'operator []()'來訪問單個字符。所以缺少什麼? – Scheff