c++ char自己设置长度。如果长度不够超过了。char会自动补上吗? string它自己判断长度会有什么不便的吗
答案:4 悬赏:40 手机版
解决时间 2021-11-12 02:22
- 提问者网友:像風在裏
- 2021-11-11 01:30
c++ char自己设置长度。如果长度不够超过了。char会自动补上吗? string它自己判断长度会有什么不便的吗
最佳答案
- 五星知识达人网友:行路难
- 2021-11-11 02:04
c++ char自己设置长度。如果长度不够超过了char会自动补上。
- char定义的是一个半角字符。
char[]定义的是一个不定长的数组,实际上是指针,用前要初始化。不过某些编程环境可能会根据情况自动帮你初始化到足够的。
char[10]定义的是一个10个字串的字符数组,这个长度已定死不能增长。如果给它填值时超过这个数组的范围,有可能编程环境会报错,中止编译,也有可能并不报错,而是在运行过程中出现错误(一般都是程序僵死,或报内存出错)。
string实际上是char指针,它由系统自动的进行长度的管理,在运行过程中自动分配,自动收回内存。在当前它自已判断长度很安全,很方便。
或许你要问了,有那么好的string,为什么还要char[10]?个人的理解给你吧:来个类比,照像机知道吧,如果只有string没有char[10],那是傻瓜相机,一切系统都给你设定好了,你要做的就是按下快门。如果只有char[10],没有string,那是手动相机,一切都得你自个去设定,会好累。
举个小例,要把一个长长字符串中的所有A全换成B,用string去做就很累,要一段一段分开来因为它总是操作整体,而用char[]就很快,只要一个一个字符看过去,是A就替成B。
全部回答
- 1楼网友:我住北渡口
- 2021-11-11 05:07
char哪有长度,只能存一个字符,string才能存放多个字符。
- 2楼网友:酒安江南
- 2021-11-11 03:31
嗯。楼上说对了。C/C++没有string类型的。只有char(wchar_t)类型,前者是ASCII后者是Unicode。string是一个模板类来的,你不用他自己写也行,不过实际开发肯定用他,因为他在里面帮你处理了很多东西,例如内存释放,引用等的问题。
- 3楼网友:枭雄戏美人
- 2021-11-11 02:59
1、char定义的是一个半角字符。
2、char[]定义的是一个不定长的数组,实际上是指针,用前要初始化。不过某些编程环境可能会根据情况自动帮你初始化到足够的。
3、char[10]定义的是一个10个字串的字符数组,这个长度已定死不能增长。如果给它填值时超过这个数组的范围,有可能编程环境会报错,中止编译,也有可能并不报错,而是在运行过程中出现错误(一般都是程序僵死,或报内存出错)。
4、string实际上是char指针,它由系统自动的进行长度的管理,在运行过程中自动分配,自动收回内存。在当前它自已判断长度很安全,很方便。
5、或许你要问了,有那么好的string,为什么还要char[10]?个人的理解给你吧:来个类比,照像机知道吧,如果只有string没有char[10],那是傻瓜相机,一切系统都给你设定好了,你要做的就是按下快门。如果只有char[10],没有string,那是手动相机,一切都得你自个去设定,会好累。两者都有的,那才算是高大尚,呵呵。
6、举个小例,要把一一个长长字符串中的所有A全换成B,用string去做就很累,要一段一段分开来因为它总是操作整体,而用char[]就很快,只要一个一个字符看过去,是A就替成B。
2、char[]定义的是一个不定长的数组,实际上是指针,用前要初始化。不过某些编程环境可能会根据情况自动帮你初始化到足够的。
3、char[10]定义的是一个10个字串的字符数组,这个长度已定死不能增长。如果给它填值时超过这个数组的范围,有可能编程环境会报错,中止编译,也有可能并不报错,而是在运行过程中出现错误(一般都是程序僵死,或报内存出错)。
4、string实际上是char指针,它由系统自动的进行长度的管理,在运行过程中自动分配,自动收回内存。在当前它自已判断长度很安全,很方便。
5、或许你要问了,有那么好的string,为什么还要char[10]?个人的理解给你吧:来个类比,照像机知道吧,如果只有string没有char[10],那是傻瓜相机,一切系统都给你设定好了,你要做的就是按下快门。如果只有char[10],没有string,那是手动相机,一切都得你自个去设定,会好累。两者都有的,那才算是高大尚,呵呵。
6、举个小例,要把一一个长长字符串中的所有A全换成B,用string去做就很累,要一段一段分开来因为它总是操作整体,而用char[]就很快,只要一个一个字符看过去,是A就替成B。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯