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)=''; //要手动加上结束符

 五、数字转换为字符串

方法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

原文地址:https://www.cnblogs.com/Jack-Lee/p/3633983.html