首页 > 代码库 > 一、c_str()、atoi()、进制转换等

一、c_str()、atoi()、进制转换等

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 =http://www.mamicode.com/ nullptr;13         }14         else15         {16             data = http://www.mamicode.com/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函数的实现:

 

一、c_str()、atoi()、进制转换等