char 转 string
char c;
string str;
stringstream stream;
stream << c;
str = stream.str();
string
转
vector
vector
vcBuf;
string stBuf("Hello DaMao!!!");
----------------------------------------------
vcBuf.resize(stBuf.size());
vcBuf.assign(stBuf.begin(), stBuf.end());
vector 转 string
stBuf.clear();
stBuf.assign(vcBuf.begin(), vcBuf.end());
char 转 stringchar c;string str;stringstream stream;stream str = stream.str();string 转 vectorvector vcBuf;string stBuf("Hello DaMao!!!");--------------------------
字符
转
的各种
转
换函数库,用这个库,字符串的各种
转
换再也不头疼
//-------------字符串
转
数字--------------
int C
String
_numberStr_2_int(C
String
str);
int std
String
_2_int(std::
string
str);//std
string
字符串
转
int
int std_hex
String
_2_int(std::
string
str);//std
string
字符串
转
int
double C
String
_2_double(C
String
in);
double std
String
_2_double(std::
string
str);//std
string
字符串
转
double
unsigned int hex
String
_2_u32(std::
string
str);
//-------------数字
转
字符串--------------
C
String
C
String
_int_2_numberStr(int n);
C
String
C
String
_int_2_numberStr6(int n);
std::
string
std
String
_int_2_numberStr(int a);
C
String
double_2_number_C
String
(double n);
std::
string
double_2_number_
String
(double a);
C
String
GetCurrWorkingDir(); //获得当前工作路径,不含最后一个字符“\”
C
String
ascii_2_c
string
(int ascii);// 把ascii字符
转
换成对应的字符,返回c
string
类型
//-------------字符串
转
字符串--------------
std::
string
C
String
_2_std
String
(C
String
str);
C
String
std
String
_2_C
String
(std::
string
str);
void C
String
_2_
char
P(C
String
str,
char
*q); //c
string
change to ansi
string
//-------------判断字符串类型--------------
bool is_a_double_type_
string
(C
String
str);
//-------------字符串复杂操作--------------
int break_
string
(std::
string
instr, std::
string
subStr,
vector
<std::
string
>* subs); //以subStr为标记切割instr为多个单词,存储于subs
std::
string
super_C
String
::getTime
String
(bool fgf);//获得表示当前时间的字符串,fgf表示是否需要分隔符
std::
string
super_C
String
::getDateTime
String
(bool fgf);//获得表示当前时间和日期的字符串,fgf表示是否需要分隔符
std::
string
getDate
String
(bool fgf); //获得表示当前日期的字符串,fgf表示是否需要分隔符
std::
string
string
_trim_LR_space(std::
string
str);//去除字符串前后的空白字符
std::
string
string
_trim_L_space(std::
string
str);//去除字符串左边的空白字符
std::
string
string
_trim_R_space(std::
string
str);//去除字符串右边的空白字符
//-------------GUI相关--------------
C
String
get_CEdit_text(CEdit* edit);
//-------------文件、路径相关--------------
C
String
calc_CurrWorkingDir_filename(C
String
str);//返回程序运行的当前路径+filename
C
String
calc_work_full_filename(C
String
filename,C
String
path);//path为路径,如果path为空返回程序运行的当前路径+filename,否则返回path+filename。
std::
string
GetCurrWorkingDir_std
String
();
std::
string
calc_CurrWorkingDir_filename(std::
string
str);
std::
string
calc_work_full_filename(std::
string
filename,std::
string
path);
写
C++
程序时经常会遇到
string
、
vector
<
char
>和(const)
char
*之间的
转
换,本文介绍了其间的
转
换方法和注意事项。
1.
string
转
vector
<
char
>
string
所存储字符串不包含'\0',所以
转
为
vector
后,通过
vector
.data()直接输出会有问题,会往后找直到'\0',会出现乱码。所以应该在
vector
后手动再加上'\0',这样在
vector
.data()输出字符串就没问题了。但此时
vector
.size()会比
string
.le
一.
string
类和
vector
<
char
>的区别
string
类是一个保存字符的动态数组,由于其中有一个接口c_str,
转
化成c语言的字符串,要以\0结尾,所以
string
类最后会有一个\0.
vector
<T>是一个保存T类型的动态数组,
vector
<
char
>也是保存字符的动态数组,但是,不会以\0结尾,不保存\0.
二.
vector
和list比较
string
类选用字节(
char
)作为它的字符类型,那么
string
其实就是一个
char
数组。
通过
string
类的构造函数进行
转
换
通过void push_back (
char
c);进行
转
换
哞加密(USACO 2015 US Open Bronze)
有时候也会遇到std:
vector
与
转
std:
string
相
互转
换的情况。首先看一下
vector
<
char
>如何
转
string
:std::
vector
<
char
> *data = response->getResponseData();
std::
string
res;
//方法一
for (int i = 0;i<data->size();++i) {
res+=(*data)[i];
...//向其中添加一些元素
string
string
s2 = "";
for (
vector
<
string
>::iterator iter =
string
s.begin(); iter !=
string
s.end(); ++iter)
string
s2 += *iter;
//cout <<
string
s2 << endl;
首先必须了解,
string
可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的
string
类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。
注意,与
char
*不同的是,
string
不一定以NULL('\0')结束。
string
长度可以根据length()得到,
string
可以根据下标访问。所以,不能将
string
直接赋值给
char
*。
1、将
char
*或者
char
[]
转
换为
string
可以...
可以使用
vector
的成员函数data()获取
vector
的底层数组指针,然后使用
string
的构造函数将其
转
换为
string
类型,示例代码如下:
vector
<
char
> vec = {'h', 'e', 'l', 'l', 'o'};
string
str(vec.data(), vec.size());
注意:
vector
中存储的元素类型必须与
string
中的元素类型相同,否则需要进行类型
转
换。