C++string类型与C语言字符数组的转换 std::string.c_str()函数
语法:
const char *c_str();搜索
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与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_str()函数返回一个临时的指针,由于是临时的,所以在没有出作用域之前就应该使用strcpy(),将字符串内容拷贝到其他字符数据或者指针中(毕竟可读).
返回的数据只读不可写,因为是const char ;
参考文章1:c++ std::string.c_str()
参考文章2:注意string与c_str()使用带来的问题
C++string类型与C语言字符数组的转换 std::string.c_str()函数相关推荐
- c语言用数组发送大写字母怎么读,c语言字符数组大小写转换
2014 全志科技校园招聘笔试题-------编程: 题目:给定字符串''just do it !'',将其转化为大写"JUST DO IT!" 方法一: /* * * 给定 ...
- C语言 字符数组 和 字符串 详解
C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ...
- 字符数组和字符串的区别,C语言字符数组和字符串区别详解
C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串.那么,字符数组就一定是字符串吗? 不一定,字符数组和字符串千万不要混淆.字符串是一种特殊的字符数组,并且C语言提供了大量适用于字符串 ...
- C语言字符数组越界问题
C语言字符数组踩坑 如果运行下面的代码会发生输出什么? #include<stdio.h> #include<string.h>/*** 输出结果* a1:wohello* a ...
- python定义字符串数组初始化_字符数组及其定义和初始化,C语言字符数组详解...
字符数组及其定义和初始化,C语言字符数组详解 字符串的存储方式有字符数组和字符指针,我们先来看看字符数组. 因为字符串是由多个字符组成的序列,所以要想存储一个字符串,可以先把它拆成一个个字符,然后分别 ...
- C语言 | 字符数组
C语言字符数组的定义 字符数组是用来存放字符数据的数组,字符数组中的一个元素存放一个字符,定义字符数组的方法和定义数值型数组的方法类似. //例子:char character[10]; C语言字符数 ...
- C/C++ | C语言字符数组初始化,有些赋值方式千万注意
一.字符数组的定义和初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. charstr[10]={'I','','a','m','','h','a','p','p','y'}; ...
- c语言字符数组赋值超过,C语言字符数组赋值
C语言字符数组赋值教程 C语言字符数组赋值详解 语法 arr[index] = value; 参数 参数 描述 arr 数组名. index 需要赋值的下标索引. value 需要设置的值. 说明 给 ...
- 嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include<st ...
最新文章
- Git子模块引用外部项目
- 特朗普马云一起见记者 将“围绕中小企业携手做伟大的事”
- 基于条件随机场的命名实体识别
- Head first java chapter 16 集合与泛型(数据结构)
- Android Unable to resolve target 'android-8'
- Java 中抽象类与接口
- 34. 二分查找左右边界
- Git的使用教程(一)
- 一张图学会python-一张图 python
- 算法 - 差分进化(DE)算法
- 美国地名大全(美国城市名称英文 中文)
- 【Unity 3D】简易小车游戏
- linpack测试工具使用说明
- 智能电瓶车充电桩 ,电动车充电的安全利器
- linux下安装MySQL5.7及遇到的问题总结
- 速度来看mac电脑怎么彻底关闭系统更新
- 在xml中定义excel的sheet_XML和Excel
- 华为语音解锁设置_华为手机语音转文字怎么设置,如何完成音频在线转换
- 计算机桌面图标怎么显示出来,显示桌面图标不见了怎么办?显示桌面图标不见了解决方法...
- ***防火墙密码恢复手记