在C中反转字符串时出现运行时错误

时间:2016-03-01 06:04:32

标签: c string

我不明白为什么在使用s[j]!='\0'时出现运行时错误,但是当我使用*temp!='\0'时,它完全正常。谁能解释一下?

void reverseWords(char *s)
{
  char *word_begin = s;
  char *temp = s; /* temp is for word boundry */
  int i=0,j=0;

  while( s[j]!='\0' )
  {
    j++;
    if (s[j] == '\0')
    {
      reverse(s, i, j-1);
    }
    else if(s[j] == ' ')
    {
      reverse(s, i, j-1);
      i = j+1;
    }
  }     
}

1 个答案:

答案 0 :(得分:4)

错误不在该功能中。如果您检查reverse函数,则永远不会递增i或递减j,因此它将永远运行。

调试器是一个有用的工具,可以立即显示。