Chinaunix首页 | 论坛 | 博客
  • 博客访问: 732377
  • 博文数量: 134
  • 博客积分: 3207
  • 博客等级: 中校
  • 技术积分: 1995
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-01 20:47
文章分类

全部博文(134)

文章存档

2022年(1)

2020年(7)

2018年(2)

2016年(5)

2015年(14)

2014年(21)

2013年(3)

2012年(1)

2011年(15)

2010年(30)

2009年(35)

分类: LINUX

2009-10-14 12:02:09

 
题目是这样的:
比较两个字符串,忽略大小写,比较长度不超过n,比较顺序为字典序。返回如下:
>0 s1>s2
=0 s1=s2
<0 s1
 
首先我们会先写一个函数名,我想大部分同学会写成如下形式:
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。*/
}
                    
希望可以给与赐教!谢谢!
 
阅读(788) | 评论(0) | 转发(0) |
0

上一篇:个人简历

下一篇:printf之栈问题

给主人留下些什么吧!~~