我不明白为什么在使用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;
}
}
}
答案 0 :(得分:4)
错误不在该功能中。如果您检查reverse
函数,则永远不会递增i
或递减j
,因此它将永远运行。
调试器是一个有用的工具,可以立即显示。