永发信息网

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。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯