C++ string char[] char* 用法说明_kidults的博客 - CSDN博客
文章推薦指數: 80 %
char * 和char [ ] 的区别char a[5] :编译器会给数组a分配5个单元,每个单元的数据类型为字符char *s : 这是个指针变量,只占四个字节, ...
C++stringchar[]char*用法说明
kidults
于 2018-06-2016:11:02 发布
6459
收藏
9
文章标签:
string char[] char* 用法说明
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kidults/article/details/80747578
版权
char*和char[]的区别
chara[5]:编译器会给数组a分配5个单元,每个单元的数据类型为字符char*s:这是个指针变量,只占四个字节,用来保存一个地址sizeof(a)=5sizeof(s)=4
用一句话来概括,就是chars**只是一个保存字符串首地址的指针变量chara[]是许多连续的内存单元,单元中的元素为char之所以用char*能达到chara[]的效果,还是字符串的本质,即给你一个字符串地址,便可以随心所欲的操所他。
但是,char*和chara[]的本质属性是不一样的
char*a=“abc”;charb[3]={‘a’,’b’};b[0]=‘b’;a[0]=‘b’;以上代码在运行时肯定会报错
char*a=”abc“的”abc“是常量所以被分配在常量存储区,a为字符指针类型是存放在栈区可以被更改,而常量存储区是不能更改的,是只读区域,所以当你试图去写入数据的时候,会报错。
而charb[3]={‘a’,‘b’}的字符a和b是存放在栈区的所以可以进行写操作。
string
怎么理解string呢我们可以把string看作是以字符为元素的容器,所有的元素构成字符串。
那么既然有了char*和char[]为什么还要用string呢其中主要原因是:
1.当我们要存一个串,但是不知道其他需要多少内存时,用string来处理就最好不过了。
2.string的内存管理是由系统处理,除非系统内存池用完,一般情况下,不用人为的去管理内存,
防止内存溢出等发生
string需要注意的地方:
string可以根据下标访问不能将string直接赋值给char*
相互转化
#include
其中c_str()函数返回一个以'\0'结尾的字符数组,而data()仅返回字符串内容,而不含有结束符'\0'。
2、constchar*c_str();
c_str()函数返回一个指向C字符串的指针,该指针指向内存内容和string相同。
因为c语言不支持...
C++中的char,char*,char[]
NeoLy123的博客
03-15
8278
C++中的char是字符的意思,可以用例如'a'来表示,每个字符串string都是由很多个单独的字符char组成。
char*是一个指针,例如:char*s1="abc",s1是一个指针,指向一个字符串常量“abc",s1这个指针可以被修改,但是字符串常量不可被修改,如果修改s1的内容,如s1="123",修改的并不是”abc”的内容,而是将s1的指针指向了新的地址。
chars2[1...
C++char二维数组使用总结
qq_27278957的博客
08-28
1088
图1
第1步,创建char双指针变量bgFrames_path,并对他分配第一维内存;然后再对所有的第一维分配内存,创建二维指针数组;
第2步,创建临时的char一维数组fileName,用sprintf_s函数对fileName赋值;
第3步,用strcpy函数对bgFrames_path的第一维数组进行拷贝赋值;
第4步,传入参数使用。
最后记得释放内存;
...
C语言char*和char[]用法
imxlw00的专栏
06-15
4万+
char[]定义的是一个字符数组,注意强调是数组。
char*定义的是一个字符串指针,注意强调是指针。
char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。
这是将提示内存不能为"written"。
当用chars[]=“hello”;后,完全可以使用s[...
C++string转换成char*字符串
爱哭鬼
04-26
2238
1.data();
stringstr="abc";
char*p=(char*)str.data();
2.c_str();
stringstr="adcd";
char*p=(char*)str.c_str();
C++中string和char*的区别
萧海的博客
08-03
618
1、定义:
string:string是STL当中的一个容器,对其进行了封装,所以操作起来非常方便。
char*:char*是一个指针,可以指向一个字符串数组,至于这个数组可以在栈上分配,也可以在堆上分配,堆得话就要你手动释放了。
2、区别:
string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。
char*的内存管理由用户自己处理,很容易出现内存不足的问题。
当我们要存一个串,但是不知道其他需要多少内存时,用string来处理就最好不过了。
当你知道了存储的内存的时候,可
C/C++char类型的使用
最新发布
罗马尼亚硬拉
03-16
750
char用法;单引号与双引号的差别
C++中string、char[]、char*之间的转换
中科院AI算法工程师的博客
04-25
6787
目录
1、char[]、char*转string
2、string转char*、char[]
1、char[]、char*转string
char[]、插入*转string比较简单,直接赋值即可进行转换
#include
详解释就是:
字符串转换成字符数组后,每个字符的ASC码与字符T的ASC码进行二进制异或运算。
最后把结果转换回字符。
4.char[]——>String:调用String的构造器
5.char[]chars=
C++中string、char*、char[]的转换
jusu10的博客
08-05
1014
C++中string、char*、char[]的转换
头段时间有人问过我这个问题,可是我一点头绪都没有,直接说不会。
现在从网上找了点资料,看了看,知道点东西了。
一、string转char*。
主要有三种方法可以将str转换为char*类型,分别是:data();c_str();copy();
1.data()方法,如:
1stringstr="hello";
2constchar*p=str.data();//加const或者用char*p=(c
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
kidults
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
104
原创
4万+
周排名
156万+
总排名
48万+
访问
等级
4575
积分
49
粉丝
242
获赞
60
评论
587
收藏
私信
关注
热门文章
AndroidStudio报错executingexternalnativebuildforcmakexxxCMakeLists.txt
49046
qt退出应用程序(exe)的方法
45849
Qt定时器之singleShot用法
30926
QtQLineEdit只能输入数字的方法
26860
Windows未能启动原因可能是最近更改了硬件软件
24187
分类专栏
Android Application类
2篇
应用未安装 软件包似乎已损坏
1篇
AndroidStudio调用 so报错 java.lang
1篇
AndroidStudioBuildOutput汉字乱码
1篇
最新评论
Android退出(应用程序)App的方法
阿莫·西林:
比那些喜欢七绕八绕的博主强多了
Android退出(应用程序)App的方法
www.ws:
很清晰!多谢
Qt定时器之singleShot用法
tcMonitor:
cpp中怎么引用啊
Androidstudio安装apk时报错DELETE_FAILED_INTERNAL_ERRORErrorwhileInstallingAPKs
qpri_:
有用有用
qt退出应用程序(exe)的方法
一夜孤舟入江南:
好吧需要加QApplication的头文件[晕]。
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
CircleImageView导致GLerror:Outofmemory!
CardView的简单使用
android底部导航栏的实现
2021年1篇
2020年8篇
2019年19篇
2018年53篇
2017年25篇
2016年3篇
目录
目录
分类专栏
Android Application类
2篇
应用未安装 软件包似乎已损坏
1篇
AndroidStudio调用 so报错 java.lang
1篇
AndroidStudioBuildOutput汉字乱码
1篇
目录
打赏作者
kidults
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1字元陣列與字串 - OpenHome.cc
字串就是一串文字,在C 談到字串的話,一個意義是指字元組成的陣列, ... #include <stdio.h> #include <string.h> int main(void) { cha...
- 2C语言char*和char[]用法_imxlw00的博客 - CSDN博客
C语言char*和char[]用法. imxlw00 于 2019-06-15 16:30:38 发布 45195 收藏 194. 分类专栏: C语言. 版权声明:本文为博主原创文章,遵循 CC...
- 3【C++】字串char string stringstream 相關用法總整理(內含範例 ...
【C++】C/C++ 字串Char String stringstream 相關用法總整理此文章中會整理char array, String, stringstream, c prinf 家族:...
- 4C語言中char*和char[]用法區別分析 - 程式人生
C語言中char*和char[]用法區別分析. 阿新• • 發佈:2019-01-10. 本文例項分析了C語言中char* 和char []的區別。分享給大家供大家參考之用。具體分析如下:.
- 5C++ char数据类型(详解版) - C语言中文网
最简单的字符数据类型是char 数据类型。 ... 以下示例即声明了一个名为letter 的char 变量。 ... 下面的程序显示了 \n 作为字符常数的用法,用单引号括起来:.