逻辑也很明确,找到每一个".",然后转化为int数值来比较大小。
如下:
int compareVersion(char* version1, char* version2) { //"123.456" "01" "1" "1.0" "0.1" "0.1.1"
int result = 0;
int v1 = 0, v2 = 0;
int i = 0, j = 0;
for (i = 0, j = 0; version1[i] != '\0' && version2[j] != '\0'; i++, j++) {
while (version1[i] != '.' && i < strlen(version1)) {
v1 = v1 * 10 + version1[i] - 48;
i++;
}
while (version2[j] != '.' && j < strlen(version2)) {
v2 = v2 * 10 + version2[j] - 48;
j++;
}
if (v1 < v2) {
return -1;
}
else if (v1 > v2) {
return 1;
}
v1 = 0, v2 = 0;
}
// getchar();
return result;
}