所以我们可以把string这个内部类当成内置类型使用。 3. c_str() 对于string类来说,其内部有这么一个成员变量,c_str,正如此图,c_str本身和指向的值均不能改变,返回值是char*实际上返回的就是string类中的内容的地址,也就是字符串的地址。 那c_str有什么作用呢?事实上对于一些线程,网络,Linux内核等都是通过C
string&replace(int pos,int n,constchar*s);string&replace(int pos,int n,conststring&s); 参数说明 : pos :要替换的子字符串的起始位置 , 位置从 0 开始计数 ; n :要替换的子字符串的长度 ; s :要替换为的新字符串 ; 返回值说明 :返回一个指向修改后的字符串的引用 ; 返回的仍然是 字符串 本...
delete []m_p; m_p = NULL; m_len = 0; } m_len = t.m_len; m_p = new char[m_len+1]; strcpy(m_p, t.m_p); return *this; } ~MyString(){ if(m_p) { delete []m_p; m_p = NULL; m_len = 0; } } public: MyString operator=(const char *p){ if(m_p){ delet...
char*sDecodeText ; ... sDecodeText=newchar[Len+1];//后面竟没有delete 以上这些风格,明显就是C开发人员写出来的C++代码。 尝试用STL管理分配释放问题。 1. std::array<char, num>, 有 data()操作, 但array是个模版, num编译器决议, 我需要支持运行时决议的。 2. vector和string, 这个两个都符合要求...
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
delete[] _str; _size = str._size; _capacity = str._capacity; _str = new char[_size + 1];strcpy(_str, str._str); return *this; } ❝ +=运算符重载 这里实现两种+=,一种是+=一个字符,另一种是+=字符串 在+=的时候要判断容量(需要有扩容的处理) ...
_bstr_t t = ws.c_str(); char* pchar = (char*)t; string result = pchar; return result; } 3》string转cstring a)CString.format("%s", string.c_str()); b)CString StringToCString(string str) { CString result; for (int i=0;i<(int)str.length();i++) ...
string s2("hello");//用C格式字符串构造 string s3(s2); return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 我们来自己模拟实现一下string类的构造函数 3.2 string类的构造函数 class string { public: //全缺省的构造函数 string(const char* str = "") ...
charcharpp[1024];//在栈里面分配 stringchstr("sometimes!"); cout<<"strRecv's addr:\t"<<"0X"<<hex<<&strRecv<<endl <<strRecv.c_str()<<endl; //cout <<&pp <<":"<<pp<<endl; //delete []pp;//testing for delete the memory which allocate in another function; ...
[_capacity + 1];strcpy(_str, str);//拷贝}~string(){delete[] _str;_str = nullptr;_capacity = 0;_size = 0;}const char* c_str() const{return _str;}private:char* _str;size_t _size;size_t _capacity;};void test(){string str;cout << str.c_str() << endl;}}int main(){...