これがコードです。フラグなしでGNUGCCでコンパイルするCodeBlocks10.05を使用してこのコードを実行すると、期待した結果が得られません。'z'
最初の文字列リテラルまたはヌルターミネータの文字の1つによって設定されていない場合、配列内のすべての文字がaに変更されることを期待していました。
#include <iostream>
#include <string>
#include <stdlib.h>
#include <cstring>
using namespace std;
int main(void)
{
char stringVar[10] = "Hello";
//char stringVar[10] = {'H', 'e', 'l', 'l', 'o', '\0'};
//char stringVar[10] = {'H', 'e', 'l', 'l', 'o'};
//char stringVar[10] = {};
for(int i = 0; i < 10; i++)
{
if(stringVar[i] != 'H' and
stringVar[i] != 'e' and
stringVar[i] != 'l' and
stringVar[i] != 'o' and
stringVar[i] != '\0')
{
stringVar[i] = 'z';
}
}
for(int i = 0; i < 10; i++)
{
cout << (int)stringVar[i] << "\t" << (char)stringVar[i] << endl;
}
return 0;
}
これが私の出力です:
72 H
101 e
108 l
108 l
111 o
0
0
0
0
0
これが私が期待したことです:
72 H
101 e
108 l
108 l
111 o
0
122 z
122 z
122 z
122 z
それで、私はここで何を間違っているのですか?ありがとう!