char*,const char*和string的相互转换

好久没写东西啦,发表学术文章一篇,hiahia~

近日和小佳子编程时遇到很多转换问题,很麻烦,在网上查了很多资料。

为了以后查找方便,特此总结如下。

如果有不对的地方或者有更简单的方法,请指出~~

1. string转const char*

string s = "abc";

const char* c_s = s.c_str();

2. const char*转string

直接赋值即可

const char* c_s = "abc";

string s(c_s);

3. string转char*

string s = "abc";

char* c;

const int len = s.length();

c = new char[len+1];

strcpy(c,s.c_str());

4. char*转string

char* c = "abc";

string s(c);

5. const char*转char*

const char* cpc = "abc";

char* pc = new char[100];//足够长

strcpy(pc,cpc);

6. char*转const char*

直接赋值即可

char* pc = "abc";

const char* cpc = pc;

时间: 2024-10-07 02:49:30

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

string char * const char *之间的互相转换

string  ->   const char * 用str的c_str()方法或者data()方法均可,这个两个方法返回值为cong char * string str = "hello"; const char *a = str.c_str(); const char *b = str.c_str(); const char *  ->  string const char*转换为 string,直接赋值即可 string  ->  char * vs不让用str

char* const char* string

1. string转const char* string s = "abc"; const char* c_s = s.c_str(); 2. const char*转string 直接赋值即可 const char* c_s = "abc"; string s(c_s); 3. string转char* string s = "abc"; char* c; const int len = s.length(); c = new char[len

const char*, char const*, char*const的区别

Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读. char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a pointer to const char; char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型. C++标准规定,const关键字放在

const char*, char const*, char*const使用时的区别

案例1: #include<iostream> using namespace std; void main(void) { // char* a 与 char a[] 的区别 char* a = "abcdef"; // a为一指针,其值可以改变.现在a指向的是一常量字符串 cout << a << endl; a = "ghijkl"; // a现在指向另一常量字符串 //a[0] = 'z'; // a指向的为常量,编译没问

const char **,char *const *,char ** const

1.告警 test_cpp.c #include <stdlib.h> #include <stdio.h> int main() { char c = 'c'; char c_q = 'c'; char *p = &c; char *q = &c_q; char **pp = &p; const char **cpp = &p; char const **c_pp = &p; char * const *pcp = &p; char

char*,const char*和string 互转

1. string转const char* 1 string s = "abc"; 2 const char* c_s = s.c_str(); 2. const char*转string 1 //直接赋值即可 2 const char* c_s = "abc"; 3 string s(c_s); 3. string转char* 1 string s = "abc"; 2 char* c; 3 const int len = s.length()

常量, char[], const char[], char*, const char*, char* const以及const char* const的详解

注意,这里用char类型只是举了一个例子,其他的int之类的也通用. 1: 常量: 例子: char str[] = "Hello world!"; char ch = 'a'; int i = 12345; 我们看等号右边的,这些就叫常量.常量在程序运行过程中不会发生改变,并且随着程序一起装入内存. 2: char[]: 例子: char str[] = "Hello world"; str是一个字符型数组(字符串)变量.可读可写. 3: const char[]

wchar_t与char、wstring与string的相互转换

个人倾向于使用优秀的开源库做这个. 最近使用boost进行转换,代码极其简单: boost::filesystem::path src(wchar_t); char = src.string().c_str(); 当然也支持wstring和string的转换

error C2664: “FILE *fopen(const char *,const char *)”: 无法将参数 1 从“LPCTSTR”转换为“const char *”

遇到这个问题,请打开本项目的Properties(属性)-------> Configuration Properties(配置属性)-------->General(常规)------->Character Set(字符集)  把Use Unicode Character Set(使用Unicode字符集) 改成使用  Use Multi-byte Character  Set (使用多字节字符集).最后别忘了  应用------>确定.