C ++中有字符串吗?

时间:2009-01-29 03:38:08

标签: c++ string

我一直在学习C ++,其中有一些来自80年代的学校书籍,我不确定它们是C ++中的字符串还是真正长的char类型数组。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:17)

C ++中有一个string类。

答案 1 :(得分:11)

查看标准库。

在STL中,你可以找到std :: string类,以及一堆其他有用的类。

基本文档可在此处找到:

http://www.sgi.com/tech/stl/

字符串文档可以在这里找到:

http://www.sgi.com/tech/stl/basic_string.html

这些stl字符串的美妙之处在于它们会自行删除;所以一旦你宣布它们,你就可以让它们离开,它们将处理自己的记忆。对于其他stl类也是如此(当然,如果你声明一个指针向量,向量将被删除,但指针指向的内存也必须被处理;它不是一个完全灵丹妙药,但它很好地工作如果你记住这个限制)。

最后,我发现这本书是学习如何用STL思考的好方法:

Effective STL

答案 2 :(得分:6)

是的,C ++中有字符串,有人已经完成所有工作并为您编码。它们不是实际的语言,而是在一个名为标准模板库的库中,它实际上总是与C ++编译器(您可能已经拥有)一起提供。在内部,它们用char数组表示,但它以特殊方式完成,因此如果字符串变大,它会丢弃小字符数组并创建一个更大的新数组。

你应该得到一本新书!

答案 3 :(得分:2)

C ++有一个std :: string,因为@mmr指出。

除此之外,几乎每个类库/框架/工具包都提供(至少)一个 这是它自己的。

除此之外,几乎每个大型c ++项目都会有变化 一个字符串库。

所有这些都是必需的,因为没有单一的尺寸适合所有。有些人想要懒惰地复制数据, 有些想要快速插入中间等,有些想要UTF-8等。

很可能,如果你的项目有任何严重的字符串操作,你最终会 写一个你自己的。

答案 4 :(得分:0)

在C ++中; null终止的char数组是一个字符串。

尽管如此,正如许多其他人所指出的那样,各种库也有一个字符串类来处理常见的字符串操作功能。