char*,string和const char*间的转换

//1.char*转string
char* c ="abc";
string s(c);

//2.const char*转string
const char* c_s ="abc";
string s(c_s);

//3.string转const char*
string s ="abc";
const char* c_s = s.c_str();

//4.string转char*
string s="abcde";
const int n=s.length();
char *c=new char[n+1];
strcpy(c,s.c_str());

//5.const char*转char*
const char* cpc ="abc";
char* pc =newchar[100];//足够长
strcpy(pc,c);
时间: 2024-10-12 20:31:56

char*,string和const char*间的转换的相关文章

string、const char*、 char* 、char[]相互转换

转化总结如下: 源格式 目标格式 string const char* char* char[] string NULL const char*=string.c_str(); const char*=string.c_str(); char*=<const_cast><char*>(const char*); for(int i=0;i< string.length();i++) { char[i]=string[];} const char* string =const

std::string stringf(const char* format, ...)

std::string stringf(const char* format, ...){ va_list arg_list; va_start(arg_list, format); // SUSv2 version doesn't work for buf NULL/size 0, so try printing // into a small buffer that avoids the double-rendering and alloca path too... char short_b

C语言中为什么不能把char**赋给const char**

这是我在知乎回答的一个问题. 这个问题是C中的一个深坑,首先说结论: char ** 和 const char ** 是两个不相容(incompatible)的类型,可以理解为不能直接赋值 在C11的6.5.2.2 Function calls中有如下内容 Each argument shall have a type such that its value may be assigned to an object with the unqualified version of the type

VS2017中遇到不存在从string到const char*的转换函数的解决方法

使用c_str()函数 c_str函数的返回值是const char*. c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式. 举个栗子: String st = "insert into chuang values ('" + vos[0] + "', '" + vos[1] + &qu

const char and static const char

The version with const char * will copy data from a read-only location to a variable on the stack. The version with static const char * references the data in the read-only location (no copy is performed). 在函数内部.const char *每次调用函数时,都须要在stack上分配内存,然后将

string to const char*

https://kokkachiprogramming.wordpress.com/2012/11/12/how-to-convert-string-to-const-char-in-c/

const char*、char*、char* const、char[]、string的区别

1.const char* p: p is a pointer to const char(char const* p 一样)   意思就是不能通过p指针来修改p指向的内容(但是内容可以修改).2.char* p      : p is a pointer to char   意思就是可通过p指针来修改p指向的内容3.char* const p: p is a const pointer to char   意思就是p指针是一个常指针,他指向的内存地址不能变,定义的时候就得初始化   一旦给指针

实战c++中的string系列--string与char*、const char *的转换(data() or c_str())

在project中,我们也有非常多时候用到string与char*之间的转换,这里有个一我们之前提到的函数 c_str(),看看这个原型: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串同样. 这就看到了吧,返回值是const char*,这里须要注意一下. 1 string转const char* 当然是用到上面所述的方法c_str(): string s1 = "abcdeg"; const char *k =

char*,const char*和string 三者转换

1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua". string s = tmp; (2) string转换为const char*,利用c_str() EX:  string s = "tsinghua"; const char*tmp = s.c_str(); 2. char*和const char*之间的转换 (1) cons