如何包含字符串标题?

Max*_*xpm 31 c++ string header-files

我正在尝试了解strings,但不同的来源告诉我要包含不同的标题.

有人说使用<string.h>,但其他人提到"apstring.h".我能够做一些基本的东西apstring,但我被告知另一个更强大.但是当我包含<string.h>并尝试声明一些字符串变量时,我会收到错误.适当的用法是什么?

GMa*_*ckG 63

您想要包含<string>和使用std::string:

#include <string>
#include <iostream>

int main()
{
    std::string s = "a string";
    std::cout << s << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但你真正需要做的是获得一本入门级别的书.你不会以任何其他方式正确学习,当然也不会在网上废弃信息.


Rob*_*edy 12

告诉您使用apstring.h的消息来源是计算机科学大学先修课程的材料.它描述您将通过课程使用字符串类,并且一些考试问题可能会引用它并希望您对它有一定的熟悉程度.除非您已加入该课程或学习参加该考试,否则请忽略这些来源.

告诉你使用string.h的消息来源要么不是在谈论C++,要么是严重过时的.你也应该忽略它们.该标头用于C函数,用于操作以null结尾的字符数组,也称为C风格的字符串.

在C++中,您应该使用字符串标头.写#include <string>在文件的顶部.声明变量时,类型是string,并且它在std命名空间中,因此它的全名是std::string.您可以通过遵循许多介绍性文本的示例并using namespace std在C++源文件的顶部说明(但通常不在您可能编写的任何头文件的顶部)来避免必须始终编写该名称的命名空间部分.

  • 很抱歉听到这个消息,@ Inverse,因为正如我所说,这是许多介绍性文本使用的方法,因为它简化了最初的C++体验.初学者不必立即担心名称空间.对于他们来说,"使用命名空间std"只是一个咒语,他们可以将每个程序放在最上面.然后,我们不必立即向他们解释为什么他们必须在每个变量声明前放置`std ::`.非初学者可以稍后了解该系列的真正功能以及为什么在较大的程序中使用它不是一个好主意. (7认同)

yub*_*lee 6

我没有听说过"apstring".如果你想在c ++中使用字符串,你可以这样做:

#include<string>
using namespace std;
int main()
{
   string str;
   cin>>str;
   cout<<str;
   ...
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望这可以利用


pax*_*blo 5

string.h如果您使用 C++ 进行编码,则不应使用。C++ 中的字符串种类繁多std::string,比旧的 C 样式“字符串”更容易使用。使用:

#include <string>
Run Code Online (Sandbox Code Playgroud)

获取正确的信息和std::string s需要申报的东西。这里std::string可以看到您可以使用的许多奇妙方法。

如果您查看了 Stack Overflow 上有关使用 C 字符串的大量问题,您就会明白为什么应该尽可能避免使用它们:-)