问题
比较2个版本大小,考虑所有情况;
代码如下
#include <stdio.h>
/*
* -1: all NULL
* -2: version1 NULL
* -3: version2 NULL
* 1 : version1 大
* 2 :version2 大
* 3 :版本相等
*/
int ComparaVersion( char *version1, char *version2)
{
char* ver1 = version1;
char* ver2 = version2;
//入参判断
if(NULL == ver1 || NULL == ver2){
if (NULL != ver1){
return -3;
}
if (NULL != ver2){
return -2;
}
return -1;
}
while ((*ver1 != '\0') && !(*(ver1) - *(ver2))){
ver1++, ver2++;
}
if (*(ver1) == '\0' && *(ver2) == '\0') {
return 3;
}else{
if (*(ver1)-*(ver2)>0){
return 1;
}else{
return 2;
}
}
}
int main()
{
int res= 0;
char version1[64] = "1.2.3a";
char version2[64] = "1.2.3b";
res =ComparaVersion(version1, version2);
printf("结果 %d\n", res);
return res;
}
欢迎大佬们纠正,谢谢!
版权所有,转载请注明出处https://blog.csdn.net/weixin_40747106/article/details/81454029