一、定义

:可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。与char*不同的是,不一定以NULL('')结束。长度可以根据()得到,可以根据下标访问。所以,不能将直接赋值给char*。

char*: char *是一个指针,可以指向一个字符串数组,至于这个数组可以在栈上分配,也可以在堆上分配,堆得话就要你手动释放了。

二、区别主要

的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。

char *的内存管理由用户自己处理,很容易出现内存不足的问题。

当我们要存一个串,但是不知道其他需要多少内存时, 用来处理就最好不过了。

当你知道了存储的内存的时候,可以用char *,但是不如用的好,用指针总会有隐患。

用还可以使用各种成员函数来处理串的每一个字符,方便处理。

用char *处理串,就不如的方便了,没有相应的函数来直接调用,而是要自己编写函数来完成串的处理,而且处理过程中用指针还很容易出现内存问题。

char *s=””的内容是不可以改的;

char s[10]=””的内容是可以改的

三、相互转化

1、 转换成 char *

如果要将直接转换成const char *类型。有2个函数可以运用。

一个是.c_str(),一个是data成员函数。

例子如下:

s1 = “”;

const char *k = s1.c_str();

const char *t = s1.data();

(“%s%s”,k,t);

cout

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!