Sloppy's Blog

std::string的一些用法

收集一些字符串的用法

反转字符串

// 反转
std::string s="HelloWorld";
std::string sr;
std::reverse(s.begin(), s.end());  
// 反转字符串到另外一字符
sr.assign(s.rbegin(), s.rend());

判断字符串是字符是某个字符串开始或者结尾

std::string s("hello, world");
std::string head("hello");
std::string tail("ld");
bool startwith = s.compare(0, head.size(), head) == 0;
bool endwith = s.compare(s.size() - tail.size(), tail.size(), tail) == 0;  

转换类型(toint, todouble)

std::string s("123");  
int i = atoi(s.c_str());  

std::string sd("12.3");  
double d = atof(sd.c_str());  

替换字符串

std::string str("hello, world");  
std::string sub("ello, ");  
str.replace(str.find(sub), sub.size(), "appy ");  

删除字符

std::string str = "  heLLo  ";  
str.erase(0, str.find_first_not_of(" "));    

str.erase(str.find_last_not_of(" ")+1);  

删除特定字符

std::string str = "   hello, world. say bye   ";  
str.erase(remove_if(str.begin(),str.end(),   
    bind2nd(equal_to(), ' ')),   
    str.end());   

大小写

std::string str = "heLLo";  

std::transform(str.begin(), str.end(), str.begin(), toupper);   

std::transform(str.begin(), str.end(), str.begin(), tolower);