本文共 2215 字,大约阅读时间需要 7 分钟。
const char* str = "this is a test";char* chs = const_cast(str); // 使用const_cast<>();
const char* str = "this is a test";char* ch = const_cast(str); // 生成char*字符串const char* dst = static_cast (ch); // 使用static_castconst char* chs = const_cast (ch); // 使用 const_cast
char arr[4] = { 'a','b','c' }; char* chs = arr1; // 调试你会发现*chrs的值已经是 "abc"
string str = "strtrtr"; const char* st = "hehe"; char st1[] = "lalalala"; //strncpy_s(st1, st, strlen(st) + 1); // 注意加1操作 strncpy_s(st1, str.c_str(), sizeof(str));; // tp = temp; //错误,不能实现 cout << st1 << endl; str = "aaaaaa"; cout << st1 << endl;
char arr[4] = { 'a','b','c' }; char* str = arr1; // 调试你会发现str的值已经是 "abc"```cpp
const char* chs = "abc"; string str1 = chs; // 或者 string str1(chs);
const char* cstr = "this is a test"; string sstr(cstr, cstr + strlen(cstr)); // 原型如下: string(const char * const _Ptr,const std::allocator&_AI)
//char[]可以直接赋值给stiring//string不能直接转换为char[],可以先转换为char*,再通过strcpy来转换 char buf[BUFSIZE]; char* p=const_cast(str.c_str()); strcpy(buf,p);
string str = "string"; char st1[] = "char arr"; strncpy_s(st1, str.c_str(), sizeof(str));
std::string str = "this is a test"; const char* cstr = str.c_str(); // 必须是const char*类型,因为c.str()的函数原型为: const char *std::string::c_str() const
string str = "this is a test"; char* cstr = &str[0];
std::string str = "this is a test"; char* cstr = const_cast(str.c_str());
写这个纯粹是无聊记录一下,也没什么实际意义,因为其实基本不会遇到这些花里胡哨的。一般的也就是函数调用的时候会涉及到,去掉顶层const或者加上顶层const,直接使用const_cast和隐式转换即可。再就是string和char类型的转换,使用c_str(),或者本身的隐式转换即可调用函数。 最后提一下,那就是string类型字符不能用printf + %s输出,会导致乱码,因为string输出流和char不一样。
转载地址:http://ubozi.baihongyu.com/