string rdBuffer ;
string wrBuffer ;
rdBuffer.clear();
//string被清空
wrBuffer.append(strSymbol);
//在string 后端加上strSymbol这个string
rdBuffer.find("PASSWORD")!=string::npos) ;
//查找string,返回指针,不能不写,不写寻找错误。
memset(aa,' ',sizeof(aa));
memcpy(aa,tcp_client::wrBuffer.data(),tcp_client::wrBuffer.size());
数组字符串的赋值 如 : aa[1024] ,以后的赋值使用strcpy
例如:
char str[40]; strcpy(str,"aldkjflakdsjfalkfj"); //第二个参数实际是一个指针
关于string转到char的过程如下示例
有时要出现const的问题,直接加及OK
string str;
char *a;
a=str.c_str();
const char *ipbuffer;
ipbuffer=ipaddress.c_str(); //ipbuffer 是string
strcpy(statebuffer.ipaddress,ipbuffer); //ipaddress 是char
strcpy(statebuffer.NETState,"Connected");
void StringToChar(char *buffer1,string buffer2,uchar size)
{
const char *stingbuffer=buffer2.c_str() ;
memset(buffer1,0,size);
strcpy(buffer1,stingbuffer);
}
char 的数组 到string的最快方法:
char kk[55] ;
string mm = kk;
String与int
要实现这个目标,非stringstream类莫属。这个类在<sstream>头文件中定义,<sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。
string到int类型的转换
<sstream>使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。
std::stringstream stream;
string result="10000";
int n = 0;
stream << result;
stream >> n;//n等于10000
int到string类型的转换
string result;
int n = 12345;
stream << n;
result =stream.str();// result等于"12345"
重复利用stringstream对象
如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法,在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的构造和析构函数通常是非常耗费CPU时间的。经试验,单单使用clear()并不能清除stringstream对象的内容,仅仅是了该对象的状态,要重复使用同一个stringstream对象,需要使用str()重新初始化该对象。
示例2:
while (std::cin>>i)
{
temp.push_back(i);
if (temp.size()>1)
{
std::vector<int>::size_type y=temp.size();
stream<<y;
std::cout<<"size:"+stream.str()<<std::endl;
stream.clear();
stream.str("");
}
}
转换中使用模板
也可以轻松地定义函数模板来将一个任意的类型转换到特定的目标类型。例如,需要将各种数字值,如int、long、double等等转换成字符串,要使用以一个string类型和一个任意值t为参数的to_string()函数。to_string()函数将t转换为字符串并写入result中。使用str()成员函数来获取流内部缓冲的一份拷贝:
示例3:
template<class T>
void to_string(string & result,const T& t)
{
ostringstream oss;//创建一个流
oss<<t;//把值传递如流中
result=oss.str();//获取转换后的字符转并将其写入result
}
这样,你就和衣轻松地将多种数值转换成字符串了:
to_string(s1,10.5);//double到string
to_string(s2,123);//int到string
to_string(s3,true);//bool到string