string与char*/char[]的转换
来源:互联网 发布:淘宝网演出服装 编辑:程序博客网 时间:2024/06/01 10:30
string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据它们进行定位。string与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。
char*是字符指针类型。比如:char * pchar;则pchar就是一个指针,是一个指向字符地址的指针。对于char[]而言,可以把数组名当作char*类型来处理,故可以将char[],char*放在一起讨论。输出char类型的指针,实际输出的是从指针指向的地址开始,把连续的每个字节解释为字符输出,直至遇到'\0'为止,而不是根据数组的长度来确定的。
1、string转换为char*
所用到的函数为basic_string::_Copy_s
size_type _Copy_s(value_type *_Dest, //目标字符数组size_type _Dest_size,//_Dest的大小size_type _Count, //将要复制的字符个数size_type _Off = 0 // 源字符串中复制的开始位置 ) const;//返回值为实际复制的字符个数
测试范例:
#include <iostream>#include <string>using namespace std;int main(){string str1 = "abcdefg";int len = str1.length();char *buffer = new char[len];basic_string<char>::size_type n;n = str1._Copy_s(buffer, len, len);buffer[n] = '\0';cout << buffer << endl;return 0;}
2、char*转换为string
可以直接将C风格字符串赋值给string类型
#include <iostream>#include <string>using namespace std;int main(){char *p = "hijklmn";string str2 = p;cout << str2 << endl;return 0;}
0 0
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string与char*/char[]的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换 .
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char*、 char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char* char[]之间的转换
- string 与char*、 char[]之间的转换
- outlook中实现邮件自动回复
- Users and Responsibilites in Oracle EBS
- Java中抽象类和接口的区别
- ThreadLocal原理介绍
- vs2008 编译 live555
- string与char*/char[]的转换
- Java实现定时任务的三种方法
- ZOJ 3713
- Android ListView和ListAdapter
- Oracle SYSTEM 表空间过满的处理(扩展表空间)
- std::unorder_hashmap分析
- CTA图像中肝脏血管增强及肝脏与血管同时分割的方法
- 畅通工程 行电1232最小生成树
- 如何在LLDB下排查message sent to deallocated instance问题