由於leveldb基於key value,而且是根據字符串進行排序的。key 和value都是string類型的,對於我要處理的有許多數字,所以就要找一個C /C++解析文本的工具了。
C 在這方面很弱,你必須編寫大量的代碼,才能完成看似簡單的工作,所以就用C++的string的方法看看了。
首先 文檔 我真是郁悶,只能搜索了,不過這里有而過好網站:http://www.cplusplus.com/reference/string/string/find/ 以后可以來這里找示例了,linux下的man不見得 那么好,對於編程來講,爛透了。
我其實只想實現1個功能,一個是從字符串A找到兩個,,之間的數據。
int found=gps.find(",",0);int start,length;
DEBUG_FOUND(found);
start=found;
found=gps.find(",",0+found+1);
DEBUG_FOUND(found);
length=found-start;
std::cout<<"gps's longitude="<<gps.substr(start+1,length-1)<<";"<<endl;
found=gps.find(",",0+found+1);
DEBUG_FOUND(found);
start=found;
found=gps.find(",",0+found+1);
DEBUG_FOUND(found);
length=found-start;
std::cout<<"gps's latitude="<<gps.substr(start+1,length-1)<<";"<<endl;
還是感覺太復雜了。找一個子字符串,要查找兩次。
這個博客講的不錯: