字符串在存儲上類似字符數組,所以它每一位的單個元素都是可以提取的,同理,字符串也是可以分割的。當然,字符串分割需要借助一些工具,比如一些函數和正則表達式。本我們就為大家梳理一些字符串分割的一些方式。
一、用strtok函數進行字符串分割
原型: char *strtok(char *str, const char *delim);
功能:分解字符串為一組字符串。
參數說明:str為要分解的字符串,delim為分隔符字符串。
返回值:從str開頭開始的一個個被分割的串。當沒有被分割的串時則返回NULL。
其它:strtok函數線程不安全,可以使用strtok_r替代。
示例:
//借助strtok實現split
#include
#include
int main()
{
char s[] = "Golden Global View,disk * desk";
const char *d = " ,*";
char *p;
p = strtok(s,d);
while(p)
{
printf("%s\n",p);
p=strtok(NULL,d);
}
return 0;
}
運行效果圖:
二、用STL進行字符串的分割
涉及到string類的兩個函數find和substr:
1、find函數
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出現的位置。
參數說明:str為子字符串,pos為初始查找位置。
返回值:找到的話返回第一次出現的位置,否則返回string::npos
2、substr函數
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:獲得子字符串。
參數說明:pos為起始位置(默認為0),n為結束位置(默認為npos)
返回值:子字符串
實現如下:
//字符串分割函數
std::vector
{
std::string::size_type pos;
std::vector
str+=pattern;//擴展字符串以方便操作
int size=str.size();
for(int i=0; i<size; p="" i++)<="">
{
pos=str.find(pattern,i);
if(pos<size)< p="">
{
std::string s=str.substr(i,pos-i);
result.push_back(s);
i=pos+pattern.size()-1;
}
}
return result;
}
View Code
運行效果:
三、用Boost進行字符串的分割
用boost庫的正則表達式實現字符串分割
實現如下:
std::vector
{
boost::regex reg(s.c_str());
std::vector
boost::sregex_token_iterator it(str.begin(),str.end(),reg,-1);
boost::sregex_token_iterator end;
while(it!=end)
{
vec.push_back(*it++);
}
return vec;
}
View Code
運行效果:
總的來說,字符串分割還是要靠一些函數和其他方法,字符串本身是沒有自我分割的能力的。字符串的相關知識其實都是Java的基礎,對于這方面有提升意向的小伙伴可以觀看本站的Java基礎教程,為自己的Java基礎查漏補缺!
串也是一類特殊的線性表,故其存儲結構與線性表的存儲結構類似,只不過組成串的結點是單個字符而已。本文我們就結合線性表的存儲結構和大家一起來探討一下3種字符串存儲結構。
對于java零基礎的初學者來說,學好基礎知識是必要的,java字符串常量是新手朋友們需要掌握的內容,今天這篇文章帶大家搞懂字符串常量的相關知識。
字符串顧名思義就是一些字符組合在一起組成的一串數據,程序員們在編寫代碼的時候都會使用到java字符串,在實際的項目中會遇到字符串截取的情況,今天我們來學習字符串截取該怎么操作,介紹四種字符串截取的方法,大家一起來學習吧!
字符串在存儲上類似字符數組,所以它每一位的單個元素都是可以提取的,同理,字符串也是可以分割的。當然,字符串分割需要借助一些工具,比如一些函數和正則表達式。本我們就為大家梳理一些字符串分割的一些方式。
Docker 是一個基于 Go 語言 并遵從 Apache2.0 協議開源的應用容器引擎,讓開發者可以打包應用到一個可移植的鏡像中
Git是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目
IDEA 全稱 IntelliJ IDEA,是java編程語言開發的集成環境,它所提倡的是智能編碼,是減少程序員的工作
Java SE(Java Platform, Standard Edition,Java標準版),零基礎入門
jQuery是一個快速、簡潔的JavaScript框架
Java SE(Java Platform, Standard Edition,Java標準版),基礎進階
動力節點在線報名表(此信息已加密,請放心填寫)