我一直在学习C ++,其中有一些来自80年代的学校书籍,我不确定它们是C ++中的字符串还是真正长的char类型数组。有人可以帮忙吗?
答案 0 :(得分:17)
C ++中有一个string类。
答案 1 :(得分:11)
查看标准库。
在STL中,你可以找到std :: string类,以及一堆其他有用的类。
基本文档可在此处找到:
字符串文档可以在这里找到:
http://www.sgi.com/tech/stl/basic_string.html
这些stl字符串的美妙之处在于它们会自行删除;所以一旦你宣布它们,你就可以让它们离开,它们将处理自己的记忆。对于其他stl类也是如此(当然,如果你声明一个指针向量,向量将被删除,但指针指向的内存也必须被处理;它不是一个完全灵丹妙药,但它很好地工作如果你记住这个限制)。
最后,我发现这本书是学习如何用STL思考的好方法:
答案 2 :(得分:6)
是的,C ++中有字符串,有人已经完成所有工作并为您编码。它们不是实际的语言,而是在一个名为标准模板库的库中,它实际上总是与C ++编译器(您可能已经拥有)一起提供。在内部,它们用char数组表示,但它以特殊方式完成,因此如果字符串变大,它会丢弃小字符数组并创建一个更大的新数组。
你应该得到一本新书!
答案 3 :(得分:2)
C ++有一个std :: string,因为@mmr指出。
除此之外,几乎每个类库/框架/工具包都提供(至少)一个 这是它自己的。
除此之外,几乎每个大型c ++项目都会有变化 一个字符串库。
所有这些都是必需的,因为没有单一的尺寸适合所有。有些人想要懒惰地复制数据, 有些想要快速插入中间等,有些想要UTF-8等。
很可能,如果你的项目有任何严重的字符串操作,你最终会 写一个你自己的。
答案 4 :(得分:0)
在C ++中; null终止的char数组是一个字符串。
尽管如此,正如许多其他人所指出的那样,各种库也有一个字符串类来处理常见的字符串操作功能。