我一直在用学校80年代的一些书籍学习C++,但我不确定它们是否包含字符串或仅仅是由char类型组成的长数组。有人可以帮忙吗?
请查看标准库。
在STL中,您可以找到std::string类以及其他许多有用的类。
基本文档可以在此处找到:
字符串文档可以在此处找到:
http://www.sgi.com/tech/stl/basic_string.html
这些stl字符串的美妙之处在于它们会自动删除;因此,一旦您声明了它们,就可以放手不管了,它们将处理自己的内存。其他stl类也是如此(当然,如果您声明一个指针向量,向量将被删除,但指针指向的内存也必须处理;它不是万能药,但如果您记住这种限制,它可以很好地工作)。
最后,我发现这本书是学习如何思考STL的好方法:
是的,在C++中有字符串。有人已经为您完成了所有工作,并为您编写了代码。它们不在实际语言中,而是在称为标准模板库(STL)的库中,该库几乎总是随C++编译器一起提供(您可能已经拥有)。在内部,它们用一个char数组表示,但以特殊方式完成,因此如果字符串变得更大,则会丢弃小的char数组并创建一个新的、更大的数组。
你应该真的找一本更新的书!
正如@mmr所指出的那样,C++有一个std :: string。
除此之外,几乎每个类库/框架/工具包都提供了(至少)一个自己的字符串库。
除此之外,几乎每个大型c ++项目都会有一个String库。
所有这些都是必需的,因为没有一个大小适合所有。一些人希望惰性复制数据,一些人希望在中间快速插入等等,一些人希望UTF-8等等。
很有可能,如果你的项目进行任何严肃的字符串操作,你最终会编写自己的代码库。