比较版本号的大小 新旧
2017-05-17 21:17
531 查看
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; /************************************************************************/ /* 判断任意两个版本号的大小,数字越大代表版本越新 */ /************************************************************************/ #define V_LEN 50 #define INPUT_LEN 100 #define V_ARR_LEN 20 //3. 以'.'拆分 void divPoint(char *v, char *delims, int *v_arr) { int i = 0; //int k = 0; char *result = NULL; result = strtok(v, delims); while(result != NULL) { v_arr[i++] = atoi(result);//字符串转换成整型数 result = strtok(NULL, delims); } //for(k = 0;k < i; k++) //{ // printf("%d ", v1_arr[k]); //} } //4. 比较新版本 void newVersion(int *v1_arr, int *v2_arr) { int i = 0; for (i = 0; i <= V_ARR_LEN; i++) { if (v1_arr[i] < v2_arr[i]) { cout<<-1; break; } else if(v1_arr[i] > v2_arr[i]) { cout<<1; break; } if (i == V_ARR_LEN) { cout<<0; break; } } } int main() { string s; char input[INPUT_LEN] = {0}; char v1[V_LEN] = {0}; char v2[V_LEN] = {0}; int v1_arr[V_ARR_LEN] = {0}; int v2_arr[V_ARR_LEN] = {0}; int i = 0; char *ret = NULL; char delims[] = "."; BEGIN: //1. 输入两个版本号 以空格隔开 getline(cin, s); //s = "12.34 56.78"; strncpy(input,s.c_str(), s.length()); //printf("%s\n", input); //判断输入格式中是否有空格 ret = strchr(input, ' '); if (ret == NULL) { cout<<"usage:1.2.5空格2.7"<<endl; goto BEGIN; } //2. 以空格 隔开 两个版本 while(input[i++] != ' '); strncpy(v1, input, i); strncpy(v2, &input[i], strlen(input)); //3. 以'.'拆分 divPoint(v1, delims, v1_arr); divPoint(v2, delims, v2_arr); cout<<endl; //4. 比较新版本 newVersion(v1_arr, v2_arr); cout<<endl; system("pause"); return 0; }
相关文章推荐
- android 版本号比较大小
- shell 版本号比较_用shell如何比较软件版本号的大小
- IOS 版本号大小比较
- java实现新旧版本号比较
- 版本号大小比较算法
- java实现新旧版本号比较
- Swift3 获取版本号,比较版本大小
- 字符串比对大小(版本号比较)
- 分割版本号,比较版本号大小
- android版本号比较大小
- 版本号大小比较算法
- iOS 比较版本号大小的方法
- iOS 版本号大小比较
- android 版本号大小比较
- iOS APP版本更新比较版本号大小
- C# 如何比较版本号大小
- js比较版本号大小
- L1-010. 比较大小
- java求数组元素重复次数和java字符串比较大小示例
- 比较两个数组的大小