C语言的版本比较
admin
2023-08-16 03:15:30
0

对于C的语言的字符串比较,目前使用比较多的是将版本分段进行比较,下面就是使用C语言实现的版本比较,可用于物联网、嵌入式等的固件版本检测。

#define VERSION_PRE_LEN10/** * 将字符串形式的版本号转为数组形式的版本号 * @param version 字符串版本号 * @param ver_arr 数组形式版本号 * @return */ int get_version(char *version, int *ver_arr) { if (version == NULL) return -1; int index = 0; char num_str[VERSION_PRE_LEN]; char *cur = version; char *pos = strchr(version, '.'); while (pos != '\0') { memset(num_str, 0, VERSION_PRE_LEN); if (cur == version) { memcpy(num_str, cur, pos - cur); } else { memcpy(num_str, cur + 1, pos - cur); }ver_arr[index] = atoi(num_str); cur = pos; pos = strchr(pos + 1, '.'); index++; }memset(num_str, 0, VERSION_PRE_LEN); memcpy(num_str, cur + 1, version + strlen(version) - cur); ver_arr[index] = atoi(num_str); return 0; }/** * 字符串形式的版本号比较 * @param version1 * @param version2 * @param count 段数 * @return 0: version1=version2, 1: version1>version2, -1:version1 ver_arr2[index]) { return 1; } else if (ver_arr1[index] < ver_arr2[index]) { return -1; } }return 0; }

【C语言的版本比较】测试
#include #include #include int main() { char version1[] = "42345.724345.2323450.23450.248.25234520"; char version2[] = "42345.724345.2323450.23450.248.25234520"; if (compare_version(version1, version2, 6) > 0) { printf("version1 > version2"); } else if (compare_version(version1, version2, 6) < 0) { printf("version1 < version2"); } else { printf("version1 = version2"); }return 0; }

相关内容

热门资讯

a... 本文目录导航: abaqus振动照应剖析中处罚力的加载方法 abaqus反...
a... 本文目录导航: abaqus资料可以不设置参数吗 abaqus外面没有自带...
A... 本文目录导航: ANSYS Workbench中二维平面剖析的设置。 an...
h... 本文目录导航: hfss19.2允许win11吗 微带如何假负载 ...
a... 本文目录导航: ansys模流剖析用哪个模块 Ansys_workbenc...
v... 本文目录导航: 在ansys中,建好几何模型后,随意变动一下视图,旋转、加大、增加,Fit...
A... 本文目录导航: Ansys软件可以收费试用吗? ansys有哪些软件 ...
a... 本文目录导航: abaqus中如何同时关上两个cae文件? abaqus找...
a... 本文目录导航: ansys流体剖析迭代次数可以中止嘛 Ansys Flot...
这... 本文目录导航: 哪位大佬有 Fluent14.5流场剖析从入门到知晓,这种百度网盘资源的链...
经... 双击D2进入System Coupling的设置,在Solution上右击选用Clear Gener...
a... 本文目录导航: ansys软件引见 ansys有哪些软件 ...
a... 本文目录导航: abaqus系列技巧18:聊聊abaqus云图外面的魔术加大镜--缩放倍数...
a... 本文目录导航: abaqus中网格不可绘制 abaqus结果可视化某个部件...
a... 本文目录导航: abaqus结果可视化某个部件云图只显示网格接壤处的? a...
驳... 本文目录导航: ABAQUS中假设选择施加的载荷类型为pressure,对应的载荷单位应该...
a... 本文目录导航: abaqus2020旋转不了物体 怎样判别abaqus转的...
在... 本文目录导航: 在abaqus中如何删除一个单元 ABAQUS怎样删除网格...
它... 本文目录导航: abaqus为什么叫abaqus,它是那些词的简称么?全称是什么呢? ...
披着“现货订购”外衣的非法期货...   近期,甘肃西北商品交易市场有限公司旗下的“铂银掘金APP”引发大量投资者集中维权。该平台打着“低...