这是代码,当我使用 CodeBlocks10.05 运行此代码时,使用没有标志的 GNU GCC 编译,我没有得到我希望的结果。我希望如果数组中的所有字符'z'
不是由初始字符串文字中的一个字符或空终止符设置的,那么它会被更改为 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
那么我在这里做错了什么?谢谢!