我想分割點上的實際key
,然後在點上分割後提取所有的字段。如何分割點上的字符串並有效地提取所有字段?
我的鑰匙看起來像這樣的東西 -
t26.example.1136580077.colox
目前,我可以拆分它的第一個點後,僅提取第一場是t26
。現在我不知道如何提取所有其他領域,以及使用下面的代碼更像是C.
以下是我目前使用的代碼從中提取第一個字段。
if (key)
{
char* first_dot = strchr(key, '.');
if (first_dot)
{
// cut at the first '.' character
first_dot[0] = 0;
}
}
cout << "Fist Key: " << key << endl;
在點分裂後。我的第一場將是string
在這種情況下是t26
,第二場也將string
在這種情況下是example
,第三字段將爲uint64_t
在這種情況下是1136580077
和第四場也將串在這種情況下是colox
。
任何想法如何有效地做到這一點?與istringstream
相比,使用strtok
更有效嗎?
使用strtok的是更有效 –
@AliKazmi,只是好奇,爲什麼會這樣呢? – AKIWEB
strtok是基於c的函數,在C#中討論Split函數,它代表用戶調用strtok,所以你不直接調用strtok並保存一些執行時間? –