注意转化为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. Android 闹钟设置

    在Android中可以通过AlarmManager 来实现闹钟,AlarmManager类是专门用来设定在某个指定的时间去完成指定的事件.AlarmManager 提供了访问系统警报的服务,只要在程序 ...

  2. Linux系统中的load average

    1. load average 定义 linux系统中的Load对当前CPU工作量的度量.简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟.5分钟.15分钟) 内平均 L ...

  3. java Comparable和Comaprator的对比

    Comparable使一个class具备不同实例间进行比较的行为.这些对象的集合,可作为Collections.sort或Arrays.sort的参数 Comparator可以看成一种算法的实现,将算 ...

  4. sysfs实例

    转自:http://blog.chinaunix.net/u1/51562/showart_1076295.html 一:前言 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象 ...

  5. poj - 1258 Agri-Net (最小生成树)

    http://poj.org/problem?id=1258 FJ为了竞选市长,承诺为这个地区的所有农场联网,为了减少花费,希望所需光纤越少越好,给定每两个农场的花费,求出最小花费. 最小生成树. # ...

  6. hihoCoder 1051补提交卡(贪心 枚举)

    http://hihocoder.com/problemset/problem/1051 既然要选择最长连续提交天数,那么提交卡必须连续使用才有可能得到最优解,这样贪心,然后从头到尾扫一遍求出最大值. ...

  7. NDK(3)java.lang.UnsatisfiedLinkError: Native method not found解决方法

    调用native方法时报错如下 : “java.lang.UnsatisfiedLinkError: Native method not found....  ”: 原因分析: 链接器只看到了在so中 ...

  8. vs2015中安装EntityFramework

    在项目上右键,然后选择Manage NuGet Packages 搜索EntityFramework,然后Install accept Attempting to gather dependencie ...

  9. leetcode:House Robber(动态规划dp1)

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  10. java生成随机序列号

    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.j ...