注意转化为unsigned char:

strcmp.h

 #ifndef STRCMP_H
#define STRCMP_H /***************************************************
功能:比较字符串s1和s2。
 一般形式:strcmp(s1,s2)
返回值:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
****************************************************/ int cat_strcmp(const char *src, const char *dst) {
int ret = ; while (!(ret = (*(unsigned char *)src - *(unsigned char *)dst)) && *dst)
++src, ++dst; if (ret < )
ret = -;
else if (ret > )
ret = ; return ret;
} #endif

main:

 #include "strcmp.h"

 void test_strcmp();

 int main() {
test_strcmp(); return ;
} void test_strcmp() {
char *s1 = "compare", *s2 = "compase";
printf("%d\n", cat_strcmp(s1, s2)); char *s3 = "compare", *s4 = "compar";
printf("%d\n", cat_strcmp(s3, s4)); char *s5 = "compar", *s6 = "compare";
printf("%d\n", cat_strcmp(s5, s6)); printf("%d\n", cat_strcmp(s3, s6));
}

/**
拓展:
unsigned char和char:
http://blog.sina.com.cn/s/blog_5c6f793801019oij.html
http://blog.csdn.net/world7th/article/details/1543575
*/

C语言实现strcmp的更多相关文章

  1. c语言,strcmp(),字符串比较,看Asic 码,str1>str2,返回值 > 0;两串相等,返回

    #include<stdio.h> #include<string.h> int main() {  char *buffer1="aaa",*buffer ...

  2. C语言 · 实现strcmp函数 · 字符串比较

    蓝桥杯练习场上碰到两个此类题了: 算法提高 11-1实现strcmp函数   时间限制:1.0s   内存限制:256.0MB      问题描述 自己实现一个比较字符串大小的函数,也即实现strcm ...

  3. C语言实现strcmp()和strcpy()函数

    #include <stdio.h> #include <assert.h> char *strcpy(char *strDest, const char *strScr) { ...

  4. oc语言学习之基础知识点介绍(二):类和对象的进一步介绍

    一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...

  5. C 实现strcmp,strcpy,strcat函数

    基于C语言的strcmp,strcpy,strcat函数的实现.C语言是一个程序猿的基础,一定要重视. char* strcat ( char * dst , const char * src ) { ...

  6. C 语言字符串的比较

    C 语言字符串的比较 #include <stdio.h> #include <Windows.h> #include <string.h> int main(vo ...

  7. 标准类型内建函数 cmp()介绍

    内建函数cmp()用于比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0.它的行 ...

  8. 改善C#程序的50种方法

    为什么程序已经可以正常工作了,我们还要改变它们呢?答案就是我们可以让它们变得更好.我们常常会改变所使用的工具或者语言,因为新的工具或者语言更富生产力.如果固守旧有的习惯,我们将得不到期望的结果.对于C ...

  9. (转)python字符串函数

    原文:https://www.cnblogs.com/emanlee/p/3616755.html https://blog.csdn.net/luoyhang003/article/details/ ...

随机推荐

  1. SSIS -->> Data Type

    SSIS和SQL SERVER, .NET数据类型的映射表

  2. nginx添加nginx_mod_h264_streaming-2.2.7模块编译报错

    报错ngx_http_streaming_module.c:158: 错误:‘ngx_http_request_t’ 没有名为 ‘zero_in_uri’ 的成员.这需要修改nginx_mod_h26 ...

  3. Docker仓库搭建(Registry + Portus)

    1.更新系统: yum update -y 2. 安装docker-compos yum -y install epel-release    #pip安装包在epel源中   yum -y inst ...

  4. opencore

    OpenCore是Android的多媒体核心,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式. OpenCore是一个多媒体 ...

  5. 9.cadence.封装1[原创]

    一.封装中几个重要的概念 软件如下: ①.Regular pad(正规焊盘) 用在:top layer,bottom layer,internal layer(信号层) ②.thermal relie ...

  6. [HDOJ2639]Bone Collector II(第k优01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639 题意:求01背包的第k优解 dp(i, j)表示容量为j时的i优解 对于第二维的操作和01背包几 ...

  7. MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

    MongoDB Replica Sets的结构类似于以集群,完全可以把他当成一个集群,因为他确实与集群实现的作用是一样的:如果其中一个节点出现故障,其他的节点会马上将业务接管过来.而无需停机操作 Mo ...

  8. Redis Cluster架构和设计机制简单介绍

    之前另一篇文章也介绍了 Redis Cluster (link,在文章的后半部分) 今天看到这一篇,简单说一下(http://hot66hot.iteye.com/blog/2050676) 作者的目 ...

  9. 浅谈网络爬虫爬js动态加载网页(二)

    没错,最后我还是使用了Selenium,去实现上一篇我所说的问题,别的没有试,只试了一下firefox的引擎,总体效果对我来说还是可以接受的. 继续昨天的话题,既然要实现上篇所说的问题,那么就需要一个 ...

  10. STL set容器的一点总结

    整理了一下set常用语句,参看这篇http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html -------------- ...