2016-11-29 4 views
1

スティングに関する課題について質問がありました。質問は尋ねました: 宣言が与えられました:char myString[16]; 次のうちどれが有効ですか?ステートメントが無効な場合は、正しい構文を入力します。私は「G」、私はあなたが代入演算子を使用していないと考えていたので、無効になると仮定C++の有効なC文字列操作の理解を助ける必要がある

/*b.*/ int len; 
len = strlen(myString); 

/*c.*/ strcpy(myString, “Hello the world”); 

/*f.*/ int strTest; 
strTest = strcmp(myString, "Nice day"); 

if (strTest < 0) 
    cout << myString << endl; 
else 
    { 
    cout << "No Dice" << endl; 
    } 

が、私は得た:

a. strcpy(myString, “Hello the world”); 
b. strlen(myString); 
c. myString = “Marylane”; 
d. cin.getline(myString, 80); 
e. cout << myString; 
f. if (myString >= “Nice day”) 
    cout << myString; 
g. myString[6] = ‘t’; 

ザ・次のように私は、これらのセクションのいくつかのコンパイルすることができましたそれをコンパイルする。誰もそれを説明できますか?

+0

なぜ代入演算子を使用できないのですか?この場合、メモリ位置に生の値を割り当てるだけです。 – jtbandes

+2

配列に割り当てることはできませんが、配列内の単一の要素に割り当てることができます(配列自体でない限り)。 –

+0

文字列の7番目の文字を 't'に設定する正しい方法は何でしょうか? –

答えて

2

char myString[16];は配列です。​​は、その配列の6番目のインデックスに文字't'を割り当てます。これはC++での有効な操作です。

1

std::stringを使用してコード内の文字列を操作しています。std::stringで、です。したがって、割り当てのような基本的な操作で文字列の一部を変更することができます。あなたもここであなたを助けるためにいくつかの例を見つけることができ、また、https://stackoverflow.com/a/2916394/1867076

:これはあなたの質問への答えを提供していない場合http://www.cplusplus.com/forum/beginner/821/

はお知らせください、私はマニュアルまたはこの回答のいずれかを読むことを示唆しているであろう。

関連する問題