c++常用字符串操作
一、字符串分割
函数:strtok
原型: char *strtok(char *str, const char *delim);
功能:分解字符串为一组字符串。
参数说明:str为要分解的字符串,delim为分隔符字符串。
返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL
二、字符串查找
函数:find函数
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos
三、求取子字符串
函数:substr函数
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:获得子字符串。
参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos)
返回值:子字符串
四、string转换为char
方法1:
函数:const char *c_str();
注意:c_str函数的返回值是const char*的,不能直接赋值给char*,一定要使用strcpy()函数 等来操作方法c_str()返回的指针;
用法:
最好不要像下面这样使用:
1 string str1="Hello"; 2 char *str2=const_cast<char*>(str1.c_str());
正确的用法是使用strcpy()来操作方法c_str()返回的指针,方法如下;
1 char c[20]; 2 string s="hello"; 3 strcpy(c,s.c_str());
方法2:
函数:copy()
用法:简单代码如下:
1 string str="hello"; 2 char p[40]; 3 str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置 4 *(p+5)='\0'; //要手动加上结束符
五、数字转换为字符串
方法1:
利用sprintf函数;代码如下:
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 int n = 65535; 8 char t[256]; 9 string s; 10 11 sprintf(t, "%d", n); 12 s = t; 13 cout << s << endl; 14 15 return 0; 16 }
方法二:
代码如下:
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 int n = 65535; 8 strstream ss; 9 string s; 10 ss << n; 11 ss >> s; 12 cout << s << endl; 13 14 return 0; 15 }
先写这么多,日后遇到了再慢慢总结
参考:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/mysplitfuncpp.html