本文共 1558 字,大约阅读时间需要 5 分钟。
#define _CRT_SECURE_NO_WARNINGS#include#include 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"<