私はC++の初心者です。現在は文字列を扱っています。 私の質問は、以下のようにスクリプトをコンパイルするときに、インデックス表記を使用すると文字列の文字を取得できますが、cout
を使用して文字列自体を取得できないのはなぜですか。私はこのスクリプトを実行するとC++:インデックスで文字列を変更
#include <iostream>
#include <string>
using namespace std;
int main()
{
string original; // original message
string altered; // message with letter-shift
original = "abc";
cout << "Original : " << original << endl; // display the original message
for(int i = 0; i<original.size(); i++)
altered[i] = original[i] + 5;
// display altered message
cout << altered[0] << " " << altered[1] << " " << altered[2] << endl;
cout << "altered : " << altered << endl;
return 0;
}
は、「変更」列内の文字は、この行で正しく表示されます:
cout << altered[0] << " " << altered[1] << " " << altered[2] << endl;
しかし、文字列自体はこれで表示されていない これはコードです行:
cout << "altered : " << altered << endl;
なぜこのようなことが起こりますか。
下記の回答がありますが、プログラムで診断を有効にする方法を調べてみてください。あなたが持っているコードは実際にはバグですが、C++コンパイラが提供する診断モードを使用すると、そのエラーが簡単に検出された可能性があります。 –
今すぐすべての回答を行って、あなたの質問に最もよく答えるものをマークしてください。 –
C++コードは* *スクリプト*(https://en.wikipedia.org/wiki/Scripting_language)ではなく*ソースコード*であることに注意してください。スクリプトは解釈され、C++のソースコードは[コンパイル]されています(https://en.wikipedia.org/wiki/Compiled_language)。 –