strcmp---比较字符串大小的使用要求,实例,自制my_strcmp

简介: strcmp---比较字符串大小的使用要求,实例,自制my_strcmp
//strcmp---比较字符串大小
//如果第一个字符串>第二个,则输出应该1。相等,输出0。第一个<第二个,输出-1
//不能直接比较如if("abc">"obc"),因为此时比较的是a o两个地址大小
//int main()
//{
//    int ret1 = strcmp("abccd", "abc");
//    printf("%d\n", ret1);
//    //另一种描写方式:
//    char* p = "abccd";
//    char* q = "abc";
//    int ret2 = strcmp(p, q);
//    if (ret2 > 0)
//        printf("第一个字符串大\n");
//    else if (ret2 = 0)
//        printf("两个字符串一样大\n");
//    else 
//        printf("第二个字符串大\n");
//    return 0;
//}
//用my_strcmp模拟strcmp
//思路:逐个字符比较(while和++),若(if)第一个字符串的字符>第二个字符串的字符,则return 1...
int my_strcmp(const char*s1, const char* s2)
{
    assert(*s1 && s2);
    while (*s1 == *s2)
    {
        if (*s1 == '\0' || *s2 == '\0')
        {
            return 0;
        }
        s1++;
        s2++;
    }
    if (*s1 > *s2)
    {
        return 1;
    }
    else
    {
        return -1;
    }
    /*159-166行代码可化简为:
    return *s1 - *s2;*/
}
int main()
{
    char* p = "abc";
    char* q = "abcd";
    int ret2 = my_strcmp(p, q);
    if (ret2 > 0)
        printf("第一个字符串大\n");
    else if (ret2 == 0)
        printf("两个字符串一样大\n");
    else
        printf("第二个字符串大\n");
    return 0;
}


相关文章
|
JavaScript
jq样式、元素操作,效果,筛选方法与转换,事件对象
jq样式、元素操作,效果,筛选方法与转换,事件对象
|
网络协议 安全
干货|不出网上线CS的各种姿势(三)
干货|不出网上线CS的各种姿势
491 0
|
缓存 JavaScript 前端开发
工作中常用的javascript常识(二)
工作中常用的javascript常识
149 0
|
索引
MFC工具栏和状态栏
MFC工具栏和状态栏
207 0
MFC工具栏和状态栏
|
存储 移动开发
命名规则及格式化输出
命名规则及格式化输出
129 0
命名规则及格式化输出
|
SQL NoSQL Java
SpringBoot2.x系列教程27--使用SQL数据库
前言 在前面的章节中,壹哥 给大家讲解了SpringBoot对Web模块的支持,但是我们开发时还有另一个重头戏,那就是进行数据库的操作。所以从本章开始,我会带大家学习在Spring Boot中实现数据库的操作。 我这里说的数据库,不仅仅有关系型数据库,比如MySQL,还包括非关系型数据库,比如Redis等。 我们现在进行关系型数据库操作时,可以选择的技术框架其实有很多,比如原生的Jdbc,还有Mybatis、JPA等开源框架,接下来我会分别针对这几个技术进行讲解,今天我先讲解在SpringBoot中利用JdbcTemplate实现数据库的CRUD操作。 一. JdbcTemplate 在开
377 0
|
关系型数据库 MySQL
MySQL里Wating for Slave workers to free pending events到底在等什么
MySQL里Wating for Slave workers to free pending events到底在等什么
120 0
|
API 开发工具 Android开发
Android中compileSdkVersion、buildToolsVersion、minSdkVersion和targetSdkVersion的含义作用
AndroidStudio中的build.gradle中包含了这些值,compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK...
2409 0
《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字
<div style="top: 0px;"></div> <span style="font-family:宋体;font-size:14px;"></span><p align="center" style="margin: 0cm 0cm 0pt; text-align: center; mso-outline-level: 1;"><span style="font-size:14
1628 0