【发布时间】:2011-05-05 10:16:10
【问题描述】:
我正在尝试了解strings,但不同的来源告诉我要包含不同的标题。
有人说使用<string.h>,但其他人提到"apstring.h"。我可以用apstring 做一些基本的事情,但有人告诉我另一个更强大。但是,当我包含 <string.h> 并尝试声明一些字符串变量时,我得到了错误。正确的用法是什么?
【问题讨论】:
标签: c++ string header-files
我正在尝试了解strings,但不同的来源告诉我要包含不同的标题。
有人说使用<string.h>,但其他人提到"apstring.h"。我可以用apstring 做一些基本的事情,但有人告诉我另一个更强大。但是,当我包含 <string.h> 并尝试声明一些字符串变量时,我得到了错误。正确的用法是什么?
【问题讨论】:
标签: c++ string header-files
您想包含<string> 并使用std::string:
#include <string>
#include <iostream>
int main()
{
std::string s = "a string";
std::cout << s << std::endl;
}
但您真正需要做的是获得introductory level book。你不会以任何其他方式正确学习,当然也不会在线获取信息。
【讨论】:
告诉您使用 apstring.h 的来源是 Advanced Placement 计算机科学课程的材料。它描述了您将在整个课程中使用的 a 字符串类,并且一些考试问题可能会引用它,并希望您对它有一定的了解。除非您已注册该课程或正在学习参加该考试,否则请忽略这些来源。
告诉您使用 string.h 的来源要么不是真正谈论 C++,要么已经严重过时。您也应该忽略它们。该标头用于 C 函数,用于处理以空字符结尾的字符数组,也称为 C 样式字符串。
在 C++ 中,您应该使用字符串标头。在文件顶部写上#include <string>。声明变量时,类型为string,在std命名空间中,所以它的全称是std::string。您可以通过遵循大量介绍性文本的示例并在 C++ 源文件的顶部说 using namespace std(但通常 not 在您可能编写的任何头文件的顶部)。
【讨论】:
using namespace std 只是一个咒语就足够了,他们可以将其放在他们编写的每个程序的顶部。然后,我们不必立即向他们解释为什么他们必须将std:: 放在每个变量声明的前面。非初学者可以稍后了解该行的真正作用以及为什么在大型程序中使用它不是一个好主意。
我没有听说过“apstring”。如果你想在 c++ 中使用字符串,你可以这样做:
#include<string>
using namespace std;
int main()
{
string str;
cin>>str;
cout<<str;
...
return 0;
}
我希望这能有用
【讨论】:
C++ 字符串类是std::string。要使用它,您需要包含 <string> 标头。
有关如何使用std::string 的基本知识,您需要咨询good introductory C++ book。
【讨论】:
如果您使用 C++ 进行编码,则不应使用 string.h。 C++ 中的字符串属于std::string 种类,它比旧的 C 样式“字符串”更易于使用。使用:
#include <string>
获得正确的信息和std::string s 声明一个。您可以使用std::string 的许多美妙方式可以看到here。
如果您查看 Stack Overflow 上有关使用 C 字符串的大量问题,您就会明白为什么应该尽可能避免使用它们 :-)
【讨论】:
【讨论】:
"apstring" 不是标准 C++,在 C++ 中,您需要 #include <string> 标头。
【讨论】:
<string> 是一个包含,而不是一个类。
<string> 包含文件包含字符串类的定义;尽管如此,严格来说你是对的,<string> 不是一个类,字符串是。
使用这个:
#include < string>
【讨论】:
要使用字符串头,我们必须先包含字符串头文件#include <string>,然后我们可以在C++中通过以下方式包含字符串头:
1)
string header = "--- Demonstrates Unformatted Input ---";
2)
string header("**** Counts words****\n"), prompt("Enter a text and terminate"
" with a period and return:"), line( 60, '-'), text;
【讨论】: