先插一个小知识点

string str = "abc"

str += 'd';

cout<<str<<endl;  //"abcd"   所以: string+char是被允许的.

string 转char* 的时候  string.c_str() 和string.data()的区别

c_str()返回的以'\0'结尾

data()返回的不以'\0'结尾

copy(p,n,size_type_off = 0);  从string类型对象中最多复制n个字符到字符指针p指向的空间中,默认从首字符开始,但是也可以指定开始复制的位置

string的c_str()返回的指针是由string管理的,他的生命周期是string的生命期 例如下面的例子是错误的:

char* p;

{

string a = "123";

p = a.c_str();

}

cout<<p<<endl;   //错误,因为指针无效了

另外这个指针始终指向的是string的内容, 如果想让指针的东西不变的话,只能先strcpy()复制到自己的内存中

 string s = "";

 const char* a = s.c_str();
char* b = strdup(a);
cout<<a; // s = "abc"; cout<<a; //abc cout<<b; //abc

char* 转string

char* p = "abc";

string s = string(p);

string 和CString的区别

cstring是ATL/MFC共享的 (ATL, Active Template Library 活动模板库, 是一种微软程序块,支持利用c++编写ASP代码以及其它ActiveX程序)

string 是c++标准库的

string 转CString

CString a;

a.format("%s", string.c_str());

char* 转CString

CString a;

a.format("%s", char*);

char* 转int

#include<stdlib.h>

int atoi(char*);    long atol(char*);

string与char* 互相转换以及周边问题的更多相关文章

  1. 关于==和equals()方法&Java中string与char如何转换&String,StringBuffer

    1.对于基本数据类型,可以直接使用==和!=进行内容比较 如:int x=30;        int y=30;         x==y;  //true 基本数据类型 简单类型(基本类型) bo ...

  2. string、char *的转换

    string转char* 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); data()方法 string str = "hello& ...

  3. PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换

    PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar ...

  4. string 与char* char[]之间的转换 2015-04-09 11:30 29人阅读 评论(0) 收藏

    1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().en ...

  5. string 与char* char[]之间的转换

    1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().en ...

  6. CString与string、char*的区别和转换

    转自:http://blog.csdn.net/luoweifu/article/details/20232379 我们在C++的开发中经常会碰到string.char*以及CString,这三种都表 ...

  7. 【转】CString与string、char*的区别和转换

    我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...

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

    在project中,我们也有非常多时候用到string与char*之间的转换,这里有个一我们之前提到的函数 c_str(),看看这个原型: const char *c_str(); c_str()函数 ...

  9. wchar_t char string wstring 之间的转换

    wchar_t char string wstring 之间的转换 转:http://blog.csdn.net/lbd2008/article/details/8333583 在处理中文时有时需要进 ...

随机推荐

  1. get改造成post请求

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  2. 如何判断Android系统的版本

    随着Android版本的增多,在不同的版本中使用不同的设计是必须的,根据程序运行的版本来提供不同的功能.这涉及到如何在程序中判断Android系统的版本. 在Android api中的android. ...

  3. SQL高级优化之经常使用的优化策略-2(The Return Of The King)

    1.2 索引 索引不是越多越好,你须要知道索引建立多了.写入数据的效率会减少.怎样使用索引要看你的项目的应用场景,做出合理的測试评估. 1.2.1 统计数量 统计数量上.假设字段(fieldName) ...

  4. oracle3

    查看表结构 DESC emp; 查询所有列 SELECT * FROM dept; 切忌动不动就用select * set timing on; 打开显示操作时间的开关,在下面显示查询时间. CREA ...

  5. (转载)OSI七层参考模型和TCP/IP四层参考模型

    Mallory   网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互 ...

  6. android之frame动画详解

    上一篇我们说了android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示. 新建一个android项 ...

  7. iOS 网络编程:socket

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  8. Eclipse - 添加 PyDev 插件

    1. 安装PyDev插件 启用Eclipse.在Help菜单中,选择Install New Software···, 然后点击Add按钮.在Location中输入:http://pydev.org/u ...

  9. MITMF使用import error

    安装问题: 1.ubuntu 14.04.安装使用capstone时候,提示出现import error:ERROR: fail to load the dynamic library. 解决方法:将 ...

  10. sqlserver 自定义字符串分割函数.

    --SQL Server Split函数 --Author: sq --说明:被分割后的字段为:short_str --支持分割符多字节 --使用方法 --Select * FROM splits(' ...