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 char*;


NULL


char*=<const_cast><char*>(const char*);


strncpy_s(char,const char*,n);


char*


string =char*;


const char*= char*;


NULL


strncpy_s(char,char*,n);


char[]


string =char;


const char*=char;


char*=char;


NULL

1、变成string,直接赋值。

2、char[]变成别的,直接赋值。

3、char*变constchar*容易,const char*变char*麻烦。<const_cast><char*>(constchar*);

4、string变char*要通过const char*中转。

5、变成char[]。string逐个赋值,char* const char* strncpy_s()。

转自rongrongyaofeiqi的博客

原文地址:https://www.cnblogs.com/narjaja/p/8858131.html

时间: 2024-07-30 09:56:40

string、const char*、 char* 、char[]相互转换的相关文章

实战c++中的string系列--std:vector&lt;char&gt; 和std:string相互转换(vector to stringstream)

有时候也会遇到std:vector与转std:string 相互转换的情况. 首先看一下vector<char>如何转string: std::vector<char> *data = response->getResponseData(); std::string res; //方法一 for (int i = 0;i<data->size();++i) { res+=(*data)[i]; } res+='\0'; std:cout << res;

[转载] C++ string, const char*, char* 之间互相转换

1, string转const char* 类型 string str = "abcdef"; const char* con_str = string.c_str() 2, const char*转string 类型 直接赋值 const char* con_str = "abc"; string str(con_str); 3, string转 char* 类型 借助strcpy函数 string str= "abc"; char* chr;

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++】int、const char*、char*、char、string之间的转换

#include "stdafx.h" #include<string> #include<vector> #include<iostream> #include<sstream> #include<stdio.h> #include<stdlib.h> using namespace std; //sstream string int2str1(int n){ ostringstream oss; oss <

char*,const char*,char[],string之间的转换问题。

#include <iostream> #include <stdlib.h> #include <string> using namespace std; int main() { // string和const char*互转 const char* a; string str_1 = "my name is pang"; a = str_1.c_str(); cout<<a<<endl; //const char*转st

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

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

string,const char*, char*转换之后还是指向同一片内存地址么?

class Same { public: void reverse(const char* str) { char* A = const_cast<char*>(str); A[0] = '1'; printf("%u\n",A); printf("%u\n",str); return; } }; int main() { Same re; string str = "This is nowcoder"; printf("%

理解C/C++中const char*、char* const、const char* const、char* const*等等

先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb", "cc" }; 也就是在char前面加个const,因为"aaa"."bbb"."cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const char*,原因是即使

Qt中QString,int,char,QByteArray之间相互转换

http://blog.csdn.net/ymc0329/article/details/7284514 int  转 QString int m=1; QString b; b=QString::number(m) QString 转int QString a="1111" int b; b=a.toInt() char 转换为 QString char a='b'; QString str; str=QString(a); QString 转换为 char QString str=