C++ char*,const char*,string,int 的相互转换

C++ char*,const char*,string,int 的相互转换

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;
constint 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.string 与int

string kind_str = "123";

int kind = atoi(kind_str.c_str());

时间: 2024-08-17 12:06:56

C++ char*,const char*,string,int 的相互转换的相关文章

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)

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()

no matching function for call to ‘std::basic_string&lt;char&gt;::assign(std::string&amp;, int)

使用string中的assign赋值函数报错,代码为: text0.assign(line,i+1); 其中text0与line都为string类型 最后发现assign函数的原型为 string &assign(const char *s,int n); 将代码改为以下即可 text0.assign(line.c_str(),i+1); 附  assign函数 string &operator=(const string &s);//把字符串s赋给当前字符串 string &am

Java中char[]数组与String类型的相互转换

String str=akjldjslkjdls"; char[] strToChars; //String 转换成char[] strToChars= str.toCharArray(); //char[] 转换成String str= String.valueOf(strToChars); str=new String(strToChars); 注:这里char[]转换成String时不能直接使用strToChar.toString(),因调用toString()方法实际是调用Object类