C语言实现strcmp
注意转化为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的更多相关文章
- c语言,strcmp(),字符串比较,看Asic 码,str1>str2,返回值 > 0;两串相等,返回
#include<stdio.h> #include<string.h> int main() { char *buffer1="aaa",*buffer ...
- C语言 · 实现strcmp函数 · 字符串比较
蓝桥杯练习场上碰到两个此类题了: 算法提高 11-1实现strcmp函数 时间限制:1.0s 内存限制:256.0MB 问题描述 自己实现一个比较字符串大小的函数,也即实现strcm ...
- C语言实现strcmp()和strcpy()函数
#include <stdio.h> #include <assert.h> char *strcpy(char *strDest, const char *strScr) { ...
- oc语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
- C 实现strcmp,strcpy,strcat函数
基于C语言的strcmp,strcpy,strcat函数的实现.C语言是一个程序猿的基础,一定要重视. char* strcat ( char * dst , const char * src ) { ...
- C 语言字符串的比较
C 语言字符串的比较 #include <stdio.h> #include <Windows.h> #include <string.h> int main(vo ...
- 标准类型内建函数 cmp()介绍
内建函数cmp()用于比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0.它的行 ...
- 改善C#程序的50种方法
为什么程序已经可以正常工作了,我们还要改变它们呢?答案就是我们可以让它们变得更好.我们常常会改变所使用的工具或者语言,因为新的工具或者语言更富生产力.如果固守旧有的习惯,我们将得不到期望的结果.对于C ...
- (转)python字符串函数
原文:https://www.cnblogs.com/emanlee/p/3616755.html https://blog.csdn.net/luoyhang003/article/details/ ...
随机推荐
- Ubuntu 12.04 SSH 安装
By default Ubuntu Desktop OS comes with ssh clientpackage. It does not include ssh server package wh ...
- 《c程序设计语言》读书笔记--大于8 的字符串输出
#include <stdio.h> #define MAXLINE 100 #define MAX 8 int getline(char line[],int maxline); voi ...
- hdu - 2102 A计划 (简单bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...
- MTK平台缩写
HSPA:High Speed Packet Access smartphone application processor,高速分组接入的智能手机应用程序处理器 META mode:Mobile E ...
- leetcode Database3
一.Rank Scores Write a SQL query to rank scores. If there is a tie between two scores, both should ha ...
- WebView中Js与Android本地函数的相互调用
介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...
- HDU 5340 Three Palindromes (Manacher)
题意: 判断是否能将字符串S分成三段非空回文串. 思路: 先预处理出前缀回文串和后缀回文串的位置,将位置分别装入两个集合中,O(n). 针对每个前缀回文串的终点位置,挑出不相交的后缀回文串,对中间那段 ...
- mysql三
修改字段名 mysql> alter table users change id user_id INT UNSIGNED AUTO_INCREMENT; 修改字段类型 mysql> al ...
- 警惕VPS服务商常用的超售手段
任何商业企业都希望将利益最大化,这是可以理解的.但如果做的过火最终损害的还是自己的利益.VPS服务提供商也一样,为了将利益最大化,他们往往会实用技术手段对所出售的VPS进行“超售”. 那么何谓“超售” ...
- 操作系统——CPU、计算机的构成
CPU主要由什么构成? CPU包括运算逻辑部件.寄存器部件和控制部件等. 逻辑部件:可以执行点或浮点算术远算操作.移位操作以及逻辑操作,也可以执行地址运算和转换. 寄存器部件:存储程序.数据和各种信号 ...