首先我们会先写一个函数名,我想大部分同学会写成如下形式:
int strncompare(char *s1, char *s2, int n)
{
}
是的,我开始也是这样写的。可是我突然觉得可以加点什么,因为我之前看过一篇文章:
文章题目叫:想成为嵌入式程序员应知道的0x10个基本问题
那里面讲到一个关键字:const.这里就不详细讲解了。
所以正确的写法是:
int strncompare(const char *s1, const char *s2, const int n)
{
}
关于代码我现在知道我已经在笔试时写错了。都是平时不太注意基础啊!
笔试和我们在电脑上写程序完全不一样!首先感觉就不一样!我建议大家还是在纸上多练习练习!那是很重要和很必要的!而且一定要到达在纸上写一遍就要保证完全正确的要求!
我现在改变了学习编程的方法,就是多上上自习,多写一些往年面试的笔试题,一定要在纸上写!这样真的会学到很多你以前看似简单但是不简单的知识!!
正确的应该是:
int strncompare(const char *s1, const char *s2, const int n)
{
assert((NULL != s1) && (NULL != s2));
int len1, len2, i, tm;
len1 = strlen(s1);
len2 = strlen(s2);
if(len1 > n || len2 > n){
printf("Too long!\n");
exit(0);
}
while (*s1 && *s2 && (*s1 == *s2))
{
s1++;
s2++;
}
return *dest - *source;
/*如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。*/
}
希望可以给与赐教!谢谢!