输入是:你好,世界
下面的程序应在单词[0]中记录“ hello”,在单词[1]中记录“ world”
int rowIndex= 0;
char words [100][100];
for (int x = 0 ; x < input.length(); x++)
{
if (input[x]>='a'&&input[x]<='z' || input[x]>='A'&&input[x]<='Z')
// This condition is to avoid recording spaces in the array
{
words[rowIndex][x]= input[x];
cout << words[rowIndex][x]<<" ";
}
else {
rowIndex++;
// Once it finds a space, it records the following characters into the next index
cout << " Index: " << rowIndex <<endl;
}
}
输出:
h e l l o
索引:1
w o r l d
cout <<"Index 0: "<< words[0] <<endl;
输出:您好
cout <<"Index 1: "<< words[1] <<endl;
输出:“什么都不输出”(为什么不输出“世界”)
************************************************** *******
为什么数组不包含word [1]中的字符,而仅包含word [0]中的字符
注意:我尝试使用动态2D数组进行操作,并且发生了相同的问题。
答案 0 :(得分:2)
cout <<"Index 1: "<< words[1]
通过访问从未初始化的words[1][0]
表现出未定义的行为。