1

私は Java でのプログラミングに慣れており、現在は少し C++ を使用する作業を行っています。

私は実際に C++ を学んでいるのではなく、実際にアセンブリ コードを使用しています。

私は講師 (大学) からの過去のコードを見て、私 (Java 開発者) が String と呼ぶものを含む変数を定義するために、彼はそれを char[] として宣言しました (これは char/character 配列を意味すると思います)。 .

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

C++ は char 配列を使用して文字列を意味しますか、それとも異なりますか?

私が使用している非常に限られた C++ については、それらが同じであると仮定し、講師と同じように char 配列を使用する必要がありますか?

この文字列を使用して行うことは、特定のポイントとして画面に出力することだけです (Intel x86 アセンブリを知っている人がいる場合は、printf を使用します)。文字配列を使用する必要がありますか?

ありがとうございました。

4

2 に答える 2

2

Astd::stringは機能を持つクラスです。char 配列は、文字の配列です。

null で終わる char 配列 (あなたの例など) を口語的に C スタイルの文字列と呼ぶことができますが、それは単なる名前です。

于 2013-10-31T16:49:25.123 に答える
1

char 配列は確かに文字列の一種です。C++ プログラマーや API ドキュメントでは、char 配列を "c 文字列" または "c スタイルの文字列" と呼ぶことがよくあります (Microsoft の概念であり、まったく異なるものである CString と区別するため)。

言語としての C++ に関する最も厄介な点の 1 つは、言語固有の単一の文字列概念を正確に定義していないことです。そのため、すべてが文字列を実装する多数の構成要素が存在します。std::string (または、Unicode を使用する場合は std::wstring) が最も一般的な実装であり、クロスプラットフォームであり、現時点では基本的に言語の一部ですが、Microsoft コードを使用する場合は、 BSTR、_bstr_t、CComBSTR、および CString 型の文字列を呼び出す API も参照してください。これらもすべて文字列型です。

一般に、選択肢があれば std::[w]string を使用し、必要に応じて文字列を (w)char-array に変換します - ただし、文字列操作が非常に単純で、出力がとにかく、c-string に関してすべてを行うのはそれほど奇妙ではありません。

于 2013-10-31T16:54:55.840 に答える