2D数组在退出循环后删除其元素

时间:2018-06-29 21:46:43

标签: c++ c++11 visual-c++ c++14

输入是:你好,世界
下面的程序应在单词[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数组进行操作,并且发生了相同的问题。

1 个答案:

答案 0 :(得分:2)

cout <<"Index 1: "<< words[1]通过访问从未初始化的words[1][0]表现出未定义的行为。