作者:朱金灿
来源:http://blog.csdn.net/clever101
之前我在使用boost库拆分字符串一文中介绍了boost库的分词器,今天发现gdal也提供了一个拆分字符串的接口:CSLTokenizeString2。CSLTokenizeString2函数有三个参数:第一个是待拆分的字符串,第二个参数是分割方式,第三个是分割选项(分割选项有多个,具体请见参考文献)。
下面是一个使用空格、tab键和换行键拆分字符串的使用例子:
#include <stdio.h>
#include <string>
#include <gdal_priv.h>
void TestCSLTokenizeString2(const char* pszCommand)
{
char **papszTokens = CSLTokenizeString2( pszCommand," \t\n",CSLT_HONOURSTRINGS|CSLT_ALLOWEMPTYTOKENS);
for( int i = 0; papszTokens != NULL && papszTokens[i] != NULL; ++i )
printf("arg %d: '%s'\n",i,papszTokens[i] ); // ok
CSLDestroy( papszTokens );
}
int _tmain(int argc, _TCHAR* argv[])
{
std::string strCmd = "ping 192.168.1.1";
TestCSLTokenizeString2(strCmd.c_str());
getchar();
return 0;
}
效果图如下:
参考文献