为什么我的函数没有执行i ++?

use*_*141 -1 c++ string for-loop object

我正在一个面向对象程序的类中编写一个get函数,但是i++我的代码中没有执行某些原因.

这是我的.cpp文件中使用的内容:

char MyString::Get(int i)
{
  if( i = '\0')
  {
    exit(1);
  }
  else
  {
    return String[i];
  }
}
Run Code Online (Sandbox Code Playgroud)

这是main.cpp文件中调用的内容:

for(int i=0; i < String1.Length()+1; i++) 
{
  cout<< String1.Get(i)<<" ";
}

cout << endl;
Run Code Online (Sandbox Code Playgroud)

这是.cpp文件中的length方法,供参考:

int MyString::Length()
{
  int counter(0);

  while(String[counter] != '\0')
  {
    counter ++;
  }

  return (counter);
}
Run Code Online (Sandbox Code Playgroud)

另外:String1 = Jello World

输出:

JJJJJJJJJJJJJ

Joe*_*Joe 5

好吧 - 可能是因为这个原因.你分配而不是比较.你给我分配零.那个'if'测试失败了(它为零),所以exit没有被调用,你的例程的其余部分以i ==运行为零.

   if( i = '\0')
   {
       exit(1);
   }
Run Code Online (Sandbox Code Playgroud)