C++中有字符串吗?
Posted
技术标签:
【中文标题】C++中有字符串吗?【英文标题】:There are Strings in C++? 【发布时间】:2009-01-29 03:38:07 【问题描述】:我一直在通过一些 80 年代的学校书籍来学习 C++,但我不确定它们是 C++ 中的字符串还是只是很长的 char 类型数组。有人可以帮忙吗?
【问题讨论】:
【参考方案1】:C++ 中有一个string 类。
【讨论】:
【参考方案2】:查看标准库。
在 STL 中,您可以找到 std::string 类,以及一堆其他有用的类。
基本文档可以在这里找到:
http://www.sgi.com/tech/stl/
字符串文档可以在这里找到:
http://www.sgi.com/tech/stl/basic_string.html
这些 stl 字符串的美妙之处在于它们会自行删除;所以一旦你声明了它们,你就可以放开它们,它们会处理自己的记忆。其他 stl 类也是如此(当然,如果您声明一个指针向量,该向量将被删除,但指针指向的内存也必须处理;它不是万能的,但它工作得很好如果您牢记这一限制)。
最后,我发现这本书是学习如何在 STL 中思考的好方法:
Effective STL
【讨论】:
【参考方案3】:是的,C++ 中有字符串,有人已经完成了所有工作并为您编写了代码。它们不在实际语言中,而是在称为标准模板库的库中,它实际上总是与 C++ 编译器(您可能已经拥有)一起提供。在内部,它们用 char 数组表示,但它以一种特殊的方式完成,所以如果字符串变大,它会丢弃小 char 数组并创建一个新的更大的数组。
你真的应该买一本更新的书!
【讨论】:
【参考方案4】:@mmr 指出,C++ 有一个 std::string。
除此之外,几乎每个类库/框架/工具包都提供(至少)一个 它是自己的。
除此之外,几乎每个您将要进行更改的大型 c++ 项目都会有 一个字符串库。
所有这些都是必需的,因为没有一种尺寸适合所有人。有些人想要懒惰地复制数据, 有些想要在中间快速插入等,有些想要 UTF-8 等。
很可能,如果您的项目进行了任何严重的字符串操作,您最终会 自己写一篇。
【讨论】:
【参考方案5】:在 C++ 中;以 null 结尾的 char 数组是一个字符串。
话虽如此,就像许多其他人指出的那样,各种库也有一个字符串类来处理常见的字符串操作功能。
【讨论】:
以上是关于C++中有字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章