1

我习惯于用 Java 编程,现在正在做一些涉及一点 C++ 的事情。

我实际上并不是在学习 C++,我实际上是在使用汇编代码,这是我不知道的 C++ 部分。

我查看了我的讲师(大学)过去的代码,并定义了一个包含我(作为 Java 开发人员)称之为字符串的变量,他将其声明为 char[](我假设这意味着 char/character 数组) .

char get1[] = "Give me the first number:";

C++ 使用 char 数组来表示字符串还是它们不同?

对于我使用的极其有限的 C++,我应该假设它们是相同的并像我的讲师那样使用 char 数组吗?

我将对这个字符串做的就是将它作为某个点打印到屏幕上(如果你们中有人知道 intel x86 程序集,请使用 printf)。我应该使用 char 数组吗?

谢谢你。

4

2 回答 2

2

Astd::string是一个具有功能的类。char 数组就是这样 - 一个字符数组。

您可以通俗地将空终止的 char 数组(例如您的示例)称为 C 样式的字符串,但这只是一个名称。

于 2013-10-31T16:49:25.123 回答
1

Char 数组当然是一种字符串 - c++ 程序员和 API 文档通常将 char 数组称为“c 字符串”或“c 样式字符串”(以将它们与 CStrings 区分开来,CStrings 是 Microsoft 的概念,完全不同)。

作为一门语言,C++ 最令人讨厌的事情之一是它没有将单个字符串概念定义为该语言的原生概念,因此有许多结构都实现了字符串。std::string(或者,如果你使用 unicode,你应该使用 std::wstring)是最常见的实现,它是跨平台的并且基本上是语言的一部分,但如果你使用 Microsoft 代码,你会另请参阅调用 BSTR、_bstr_t、CComBSTR 和 CString 类型字符串的 API - 所有这些也是字符串类型!

一般来说,如果可以选择,我会使用 std::[w]string ,并根据需要将字符串转换为 (w)char-arrays - 尽管如果您的字符串操作非常简单,并且您的输出必须是无论如何,一个 c 字符串,用 c 字符串做所有事情都不会那么奇怪。

于 2013-10-31T16:54:55.840 回答