c_str()的用法详细解析
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
c_str()就是把string类对象转换成和c兼容的char *类型。
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
相关推荐
-
深入C++ string.find()函数的用法总结
#include <string>#include <iostream>using namespace std; void main(){ 复制代码 代码如下: ////find函数返回类型 size_typestring s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");string flag;string::size_type position;//find 函数 返回jk 在s 中的下标位置 position = s.f
-
string中c_str(),data(),copy(p,n)函数的用法总结
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str().data().copy(p,n). 1. c_str():生成一个const char*指针,指向以空字符终止的数组. 注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效.因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中.注意.看下例: 复制代码 代码如下: const char* c; string s="1234"; c = s.c
-
c_str()的用法详细解析
const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. c_str()就是把string类对象转换成和c兼容的char *类型.这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式.注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针比如:最好不要这样:char* c;string s="1234";c
-
Java Stream.reduce()用法详细解析
目录 基本使用 额外举例 并行读流 处理异常 复杂对象的处理 总结 在学习这个函数的用法之前,我们要先知道这个函数参数的意义 基本使用 先举一个简单的例子: 算法题:Words题目描述每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V. 解答要求时间限制:1000ms, 内存限制:100MB输入输入只有一行,包含一个字符串S(长度不会超过100),代表整个句子,句子中只包含大小写的英文字母,每个单词之间有一
-
js中AppendChild与insertBefore的用法详细解析
appendChild定义appendChild(newChild: Node) : NodeAppends a node to the childNodes array for the node.Supported: IE 5.0+, Mozilla 1.0+, Netscape 6.0+, Safari 1.0+, Opera 7.0+添加一个节点到指定的节点的子节点数组中,读起来好象有点拗口,简单地说就是将元素添加到指定的节点中 appendChild用法target.appendChil
-
Android Intent的几种用法详细解析
Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料.都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用程序,并执行该程序. 下面列出几种Intent的用法显示网页: 复制代码 代码如下: Uri uri = Uri.parse("http://www.google.com");Intent it = new Intent
-
VC中Tab control控件的用法详细解析
1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl. 3. 在对话框的初始化函数OnInitDialog
-
js中indexof的用法详细解析
String.IndexOf 方法 (Char, [startIndex], [count]) 报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置. 参数 value 要查找的 Unicode 字符. 对 value 的搜索区分大小写. startIndex(Int32) 可选项,搜索起始位置.不设置则从0开始. count(Int32) 可选项,要检查的字符位置数. 返回值 如果找到该字符,则为 value 的索引位置:否则如果未找到,则为 -1. I
-
Linux tcpdump命令的用法详细解析
英文原意是dump traffic on a network ,即截获网络上的数据报,可以根据指定的网络接口来截获不同的数据报.它会输出在某个网络接口上符合匹配表达式的报内容的描述.当tcpdump完成抓包后,会打印出类似下面的内容: 9 packets captured56 packets received by filter17 packets dropped by kernel 当然,在读取网络上的数据包时,得需要特权,比如linux上的超级用户 tcpdump用法 tcpdump -A
-
sql语句中like的用法详细解析
在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. 假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以"张"字开头的记录,语句如下:select * from table1 where name like &quo
-
c语言中static和extern的用法详细解析
一,static和extern:大工程下我们会碰到很多源文档. 文档a.c 复制代码 代码如下: static int i; //只在a文档中用int j; //在工程里用static void init() //只在a文档中用{}void callme() //在工程中用{ static int sum;} 上面的全局i变量和init()函数只能用在a.c文档中,全局变量sum的作用域只在callme里.变量j和函数callme()的全局限扩充到整个
-
linux中uptime命令的用法详细解析
系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系统在过去的1分钟.5分钟和15分钟内的平均负载. uptime命令用法十分简单:直接输入uptime即可.另外还有一个参数 -V ,是用来查询版本的. (注意是大写的字母v)[linux @ localhost]$ uptime –Vprocps version 3.2.7[linux @ loc
随机推荐
- Javascript基础_嵌入图像的简单实现
- XHEditor编辑器使用文档
- linux 中的gzip命令
- 一天一个shell命令 linux文本操作系列-tac,rev命令详解
- Access 数据类型与 MS SQL 数据类型的相应
- SQL Server数据库性能优化技术第1/2页
- Java使用synchronized修饰方法来同步线程的实例演示
- IOS 详解socket编程[oc]粘包、半包处理
- JavaScript用200行代码制作打飞机小游戏实例
- PHP+Ajax 网站SEO查询工具 提供代码第1/3页
- python字典多键值及重复键值的使用方法(详解)
- C语言实现最简单的剪刀石头布小游戏示例
- 详解vuejs之v-for列表渲染
- Android 线程thread的两种实现方法(必看)
- JS+CSS 制作的超级简单的下拉菜单附图
- Android仿淘宝物流追踪的实例代码
- 通过构造函数实例化对象的方法
- PHP简单数据库操作类实例【支持增删改查及链式操作】
- 深入浅析Android手机卫士保存密码时进行md5加密
- C#实现自定义windows系统日志的方法