标签:
c-str()的功能:当程序用到atoi()、strcpy()这类的C函数时,就要将string类字符串转换成char型字符串;(string是个类,char是个常规类型)
c_str()的实现:
1 #include <iostream> 2 using namespace std; 3 4 //定义一个简易的string类,实现将传进来的任意类型的字符串 储存到 char*指针指向的空间里 5 class my_string 6 { 7 public: 8 my_string(const char* str = nullptr) 9 { 10 if(nullptr == str) //写判断语句时常量要写在前面,以减少出错(万一少些一个 ‘=‘ 系统会报错) 11 { 12 data = nullptr; 13 } 14 else 15 { 16 data = new char[strlen(str)+1]; //+1 是因为有 ‘\0‘ 17 strcpy(data,str); //只能strcpy(char* dest,const char* src)这一种参数形式 18 } 19 } 20 const char* c_str(void) 21 { 22 return data; 23 } 24 private: 25 char* data; 26 }; 27 int main(void) 28 { 29 my_string s("hello world!"); 30 cout << s.c_str() << endl; 31 return EXIT_SUCCESS; 32 }
上式代码中有提到的strcpy函数的实现:
标签:
原文地址:http://www.cnblogs.com/zenseven/p/4192583.html