库函数strcmp的使用及模拟实现

基于verilog的16QAM调制 思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差... 阅读详情

一、什么是strcmp

strcmp是C语言中常用的字符串比较函数,用于比较两个字符串的大小关系。

以下是strcmp函数的原型:

int strcmp(const char *str1, const char *str2);
  1. str1是要比较的第一个字符串;
  2. str2是要比较的第二个字符串;
  3. 该函数返回一个整数:若str1 == str2,返回0,若str1 > str2,返回正整数,若str1 < str2,返回负整数 。
  4. strcmp函数会按照字典顺序对str1和str2进行逐字符比较,直到遇到不相等的字符或者其中一个字符串的末尾。根据比较结果,返回相应的整数值。

二、如何使用strcmp 

以下是一个示例,演示了如何使用strcmp函数:

//strcmp的简单使用
#include<string.h>//使用strcmp需要包含该头文件

int main()
{
	char str1[] = "apple";
	char str2[] = "banana";

	int result = strcmp(str1, str2);//比较了对应位置上的字符的ASCII码值

    if (result < 0) 
    {
        printf("%s comes before %s\n", str1, str2);
    }
    else if (result > 0) 
    {
        printf("%s comes after %s\n", str1, str2);
    }
    else 
    {
        printf("%s is the same as %s\n", str1, str2);
    }

	return 0;
}

三、strcmp函数的模拟实现

 以下代码演示了如何模拟实现strcmp库函数:

//库函数strcmp的模拟实现
//strcmp函数的原型:int strcmp(const char *str1, const char *str2);
#include<assert.h>

int my_strcmp(const char* str1, const char* str2)//加上const修饰字符串,防止字符串被修改的意外情况
{
    assert(str1 != NULL);//对str1、str2进行断言,判断是否为空指针
    assert(str1 != NULL);

    while (*str1 == *str2)//当两个字符串对应位置上字符的ASCII码值相等,则指针向后走
    {
        if (*str1 == '\0')//如果其中一个字符串的指针指向了空字符,则说明空字符前的所有字符都相等
            return 0;
        
        str1++;
        str2++;
    }

    return *str1 - *str2;//返回两个字符串对应位置上的字符的ASCII码值做差的结果
    //如果大于零则说明str1 > str2,否则<
}

int main()
{
    char str1[] = "orange";
    char str2[] = "banana";

    int result = my_strcmp(str1, str2);

    if (result < 0)
    {
        printf("%s comes before %s\n", str1, str2);
    }
    else if (result > 0)
    {
        printf("%s comes after %s\n", str1, str2);
    }
    else
    {
        printf("%s is the same as %s\n", str1, str2);
    }

    return 0;
}

更多C语言相关练习请跳转:test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com)

ArcGIS Pro 3.4 二次开发 - 布局 本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作布局工程项的相关方法。主要内容包括:引用布局工程项和关联布局,在新视图中打开或激活已有布局视图,引用活动布局视图,导入/移除布局工程项,创建基本布局或带参考线的自定义布局,修改布局页面尺寸,以及创建圆形图形元素等操作。重点演示了如何通过CIM(Core Infrastructure Model)进行高级布局配置,并详细说明了圆形图形元素的创建过程,包括几何构建、符号设置和图形生成。所有涉及UI线程的操作都遵循ArcGIS Pro SDK 阅读详情

相关推荐

ENSP之配置静态路由

ENSP之配置静态路由 两台路由器两台PC 拓扑图如下: 配置AR1线路上的两条IP地址 配置AR2线路上的两条IP地址 3.AR2上 配置静态IP 路由 AR1上 配置静态IP 路由 设置两台PC 的IP地址 网关 PC1 PC2 全部配置好了之后 现在测试PC1是否ping 得通PC2 在命令行输入 成功的话如下图 ...

浪友与泪的博客 3544

strcmp函数的实现

strcmp主要是用来判断两字符串是否相等的库函数(判断相等时区分大小写),函数声明如下int strcmp(const char* str1,const char * str2),返回值类型是int. (1)当str1==str2时,返回0 (2)当str1>str2时,返回大于0的整数 (3)当str1<str2时,返回小于0的整数 编写实现的思路:首先判断参数入参有效性,参数错误则返回error,注意error提前宏定义为了-2,因为函数返回类型是int,所以即使参数错误返回也应该

lswfcsdn的博客 7690

洪水风险图制作全流程:HEC-RAS 与 ArcGIS 的耦合应用

本文系统介绍HEC-RAS水动力模拟软件在水利工程中的应用技术。内容涵盖:1)软件理论与安装;2)一维地形数据导入与河网构建;3)恒定流/非恒定流计算及模型调试要点;4)构筑物建模技术(桥梁、堰闸等);5)二维水动力模拟与溃坝分析;6)洪水风险图绘制。重点讲解水面线调试、糙率选取、报错分析等实操难点,通过案例教学实现从基础到工程应用的全流程技术掌握。该培训适用于防洪评价、河道治理等水利工程数值模拟需求。

2403_89974123的博客 1050

用函数实现strcmp(C语言)

mystrcmp mystrcmp mystrcmp ,重要的事情说三遍

qq_53015066的博客 6768

【实战指南】EC-Engineer中ESI配置与PDO Mapping全流程解析

本文详细解析了EC-Engineer中ESI配置与PDO Mapping的全流程操作,包括环境准备、ESI文件导入技巧、在线配置细节及故障处理。特别强调了WinPcap驱动的兼容性问题和PDO Mapping的最佳实践,帮助工程师高效完成EtherCAT总线配置,适用于工业自动化领域的伺服控制与运动协同场景。

weixin_28730927的博客 395

从零搭建SPI通信系统:AXI Quad SPI IP核在Xilinx平台上的完整配置流程

本文详细介绍了在Xilinx平台上使用AXI Quad SPI IP核从零搭建SPI通信系统的完整配置流程。涵盖IP核架构解析、Vivado环境配置、寄存器编程实战及性能优化策略,帮助开发者快速实现高速稳定的SPI通信,特别适用于嵌入式系统开发中的外围设备连接需求。

hh234的博客 1052

C语言--strcmp函数,strcat函数,strcpy函数详解及实现

strcmp函数是用来比较两个字符串大小的函数,需要引用头文件<string.h>。strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较标准规定:第一个字符串大于第二个字符串,则返回大于0的数字第一个字符串等于第二个字符串,则返回0第一个字符串小于第二个字符串,则返回小于0的数字strcat追加拷贝,追加到目标空间后面,目标空间必须足够大,能容纳下源字符串的内容。

2301_76618602的博客 2万+

FIFO Generate IP核使用——FIFO写操作详解及Status Flags页配置

本文介绍了FIFO的写操作及Status Flags页的配置信息。

u011565038的博客 2283

strcmp函数的实现方式

1、 string函数的实现方式 int m_strcmp(const char *s0,const char *s1) { if (s0 == NULL) { s0 = ""; } if (s1 == NULL) { s1 = ""; } do{ if (*s0 != *s1) { return 1; } s1++; }while(*++s0); if (*s1) { return 1; } return 0; } 2、 测试 char

fitpolo 2679

FPGA实战:用DDR3和乒乓操作解决视频帧撕裂问题(附Verilog代码)

本文详细介绍了如何利用DDR3内存和乒乓操作架构解决FPGA视频处理中的帧撕裂问题。通过多帧缓存原理、AXI接口配置和自适应乒乓操作设计,有效隔离读写操作,确保视频流稳定传输。文章包含Verilog代码实现和性能优化技巧,适用于工业相机、医疗影像等高速视频处理场景。

m2n3b4v5c6的博客 289

告别命令行恐惧!用TBtools的MCScanX插件,5分钟搞定拟南芥和水稻的基因组共线性分析

本文介绍如何利用TBtools的MCScanX插件快速完成拟南芥和水稻的基因组共线性分析,无需命令行操作,5分钟即可生成专业可视化结果。通过图形化界面简化传统MCScanX的复杂流程,特别适合非生物信息背景的研究者,显著提升基因组数据分析效率。

dianzhuique8587的博客 377

详解C语言实现strcmp()

strcmp()函数的作用是比较字符串,比较的时候逐个字符比较,函数原型如下: int strcmp(const char *str1, const char *str2); 如果str1>str2,返回>0; 如果str1<str2,返回<0; 如果str1=str2,返回=0; 在具体实现过程中,我们需要遍历两个字符串,直到其中一个字符串结束,每一次循环都要比较两个字符串中字符大小,下面是具体的实现过程 #include <stdio.h> int mys.

tiramisu_L的博客 3881

FCL碰撞检测库在Windows下的编译与配置(MinGW+CMake)

本文详细介绍了在Windows系统下使用MinGW和CMake编译配置FCL碰撞检测库的完整流程。内容涵盖MinGW-w64、CMake的安装与环境配置,关键依赖库Eigen和libccd的安装,以及FCL源码的编译、安装与实战测试。重点解析了CMake配置命令中的关键参数与常见错误解决方案,旨在帮助开发者高效完成FCL在Windows平台的部署,适用于机器人、游戏物理引擎等需要精确碰撞检测的开发场景。

sunny的博客 481

c语言模拟实现库函数 strlen strcpy strcat strcmp strstr

解释:strlen 是求字符串长度的,求出的长度是不可能为负数 所以返回类型设置为size_t也是合情合理的 typedef unsigned int size_t\字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。参数指向的字符串必须要以 '\0' 结束。注意函数的返回值为size_t,是无符号的strlen("abc")-strlen("abcdef") 3- 6 结果仍然是3。

2402_86583623的博客 875

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

模拟实现库函数strlen strcpy strcmp strcat

模拟实现库函数strlen strcpy strcmp strcat

gemgod的博客 306

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

strcmp库函数模拟实现

第一次尝试 #include<stdio.h> #include<stdlib.h> int myStrcmp(const char* str1,const char* str2) { if (str1 == NULL || str2 == NULL) { return NULL; } while (*str1 != '\0' || *str2 != '\0') { if (*str1 == *str2) {

波风水门的博客 266

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

模拟实现库函数strlen、strcpy、strcmp、strcat

模拟实现strlen int my_strlen(const char*arr) { // asssert(arr!=NULL); int count = 0; while (*arr != '\0') { count++; arr++; } return(count); } int main() { char arr[] = "abcdftg"; int count = m...

shuangweiyebai的博客 1076

模拟实现库函数--strcmp(字符二进制比较)

模拟实现strcmp

这个人很懒, 什么都没留下(这是我写的) 480

库函数strcmp的模拟实现

前面字符串大于后面的字符串返回大于0的数字,相等返回0,前面的字符串小于后面的,返回小于0的数字。strcmp是字符串之间的比较,看官方说明。strcmp的模拟实现。

m0_48857897的博客 382

模拟实现strcmp的库函数

c语言理解头文件库函数的用法

qq_68285280的博客 229

模拟strcmp库函数的实现(超详细)

这一篇,带你从零基础到完全掌握strcmp库函数的使用!

m0_70088010的博客 1251

库函数的模拟实现(strcat、strcmp)

在C语言中,如果源和目标内存区域有重叠,但不是在目标数组的开头,使用。

Yyyyyyyyyyyyds的博客 1082

【C语言】库函数的使用与模拟实现(strlen、strcpy、strcmp....

C语言初阶库函数的使用与基础代码的模拟实现

小刘好好学习的博客 5271

C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现

前言 本篇文章主要学习一下常见的库函数和模拟实现这些库函数,这篇文章可以加深我们对这些函数的理解。 一、strlen 这个函数是用来求字符串长度的,实现逻辑是: ‘\0’ 作为字符串的结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包 含 ‘\0’ )。返回值类型为无符号整形。 我们来看一下这个函数如何用: 这个用起来并不难,传首元素地址过去,就能计算出字符串的长度。下面我们来看一下strlen的模拟实现: #include <stdio.h> #include

weixin_63257947的博客 1398

模拟实现库函数strcat、strcmp

比较两个字符串是否相等。模拟实现strcmp。

2301_80247375的博客 488

strcmp,strcat,strstr库函数的模拟实现

strcmp,strcat,strstr库函数的模拟实现

qq_57659991的博客 389
上一篇: ctype.h
下一篇: 库函数strstr的使用及模拟实现
Jett_Lin
博客等级 码龄5年 305粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值