展开全部
第一题:
while循环可以写成如下形式:
while ((*s!=0)&&(*t!=0)&&(*s==*t))
{
++s;
++t;
}
循环的三个判断中*s和*t用于判断字符串是否结束。因为C中字符串结束位置用NULL(/0)表示其他位置则均不为0。如果其中一个字符串到达了结束位置,那么*s(*t)就会等于0,条件表达式中用了&&运算符,所以整个表达式的值为假,while循环结束。*s==*t则是判断两字符串当前位是否相同,如果不同就为假。
最后的return应该很简单了。
第二题:
我觉得题中程序写错了,第一个循环应该改为:
while (*s) ++s;
这样才能达到s的结束位置。
第二个循环结束后应该再加一句
*s=0;
否则字符串s的尾部没有结束符NULL,会引发错误。
这两个程序的重点是:
1.用*s!=0来判断是否遍历到了字符串结束位置。
2.由于C中条件表达式0为假,其他值为真。所以*s!=0可以简写为*s。
3.任何字符串都必须有结束符NULL。
while循环可以写成如下形式:
while ((*s!=0)&&(*t!=0)&&(*s==*t))
{
++s;
++t;
}
循环的三个判断中*s和*t用于判断字符串是否结束。因为C中字符串结束位置用NULL(/0)表示其他位置则均不为0。如果其中一个字符串到达了结束位置,那么*s(*t)就会等于0,条件表达式中用了&&运算符,所以整个表达式的值为假,while循环结束。*s==*t则是判断两字符串当前位是否相同,如果不同就为假。
最后的return应该很简单了。
第二题:
我觉得题中程序写错了,第一个循环应该改为:
while (*s) ++s;
这样才能达到s的结束位置。
第二个循环结束后应该再加一句
*s=0;
否则字符串s的尾部没有结束符NULL,会引发错误。
这两个程序的重点是:
1.用*s!=0来判断是否遍历到了字符串结束位置。
2.由于C中条件表达式0为假,其他值为真。所以*s!=0可以简写为*s。
3.任何字符串都必须有结束符NULL。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询