字符串格式间相互转换
来源:互联网 发布:淘宝在线使用 编辑:程序博客网 时间:2024/04/28 00:56
1.1 基本概念
· char[]:字符串数组
· char*:指向字符串的指针
· string:string类对象
1.2 xxx->char[]
· char*->char[]
o method1:strcpy(dest,src)把从src地址开始且含有'\0'结束符的字符串复制 到 以dest开始的地址空间。
strcpy(c,p); //不会检查目的字符串长度是否大于源字符串长度,存在buffer溢出的危险
o method2:
sprintf(c ,"%s" ,p); //不会检查目的字符串长度是否大于源字符串长度,存在buffer溢出的危险
· string->char[]
o method1:根据下标,循环赋值
o method2:借助char*,将string->char*->char[]
strcpy(c,s.c_str());
1.3 xxx->char*
· char[]->char* 直接赋值
o p = c;
· string->char*
o method1::c_str()返回const char*
p = (char*)s.c_str();
o method2:copy()
s.copy(p,s.length()+1,0); //error
char *newc = (char*) malloc(100*sizeof(char));
s.copy(newc,s.length());//不会检查目的字符串长度是否大于源字符串长度,存在buffer溢出的危险,没有将‘\0’写入,需手动添加
*(newc+s.length()+1) = '\0';
o method3:data()返回constchar*,不带结束符
p = (char*)s.data();
1.4 xxx->string
· char[]->string直接赋值
o s = c;
· char*->string直接赋值
o s = p;
1.5 注意点
· 将string s利用c_str()转为char* c时,返回的是一个临时指针,不能对其进行操作若s改变,则c也跟着改变(不可控);因此string->char* 推荐使用strcpy()
o char* cc = new char[20];
string ss="1234";
cc = (char*)ss.c_str();
strcpy(cc, ss.c_str());//char*需要预先分配内存空间
cout<<cc<<endl; //输出:1234
ss="abcd";
cout<<cc<<endl; //c_str()输出:abcd,strcpy(0)输出:1234
- 字符串格式间相互转换
- 字符串的格式相互转换T2W.T2OLE
- Oracle和Sql 日期格式与字符串格式相互转换
- Android日期格式和字符串格式相互转换
- json格式字符串与json对象相互转换的函数
- 时间字符串格式相互转换——C语言
- asii和unicode格式字符串之间的相互转换
- 对象和XML,JSON格式字符串的相互转换
- 字符串编码格式相互转换Unicode --UTF-8 -- GBK
- 不同格式 图片间的 相互转换!
- C# ASCII与字符串间相互转换
- 字符串的相互转换
- 字符串相互转换
- 各种字符串相互转换
- 日期-字符串 相互转换
- 日期字符串相互转换
- 字符串、日期相互转换
- 证书格式以及相互转换
- angular输入验证
- lombok使用简介
- 揭秘京东文件系统JFS的前世今生,支持双11每秒约10万个对象同时读写
- DB2 SUBSTR函数
- 卷积神经网络中十大拍案叫绝的操作
- 字符串格式间相互转换
- 三种方式实现网页二级菜单
- Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表
- 为什么 Facebook 活得春风得意,而人人网却半死不活?
- linux虚拟机能ping通windows主机,windows主机ping不通linux虚拟机的解决办法
- 数据库的读写分离
- CentOS7打开终端快捷键
- 美团点评架构再调整,王兴凭什么同时杠上阿里滴滴饿了么
- 智能社:javascript教程(基础)