写了个ipv4地址字符串转换为4个整型数的函数, 大佬们帮我看一下有没有啥问题, 跪谢
											正确条件是: 仅包含数字, 空格, 点,
允许数字和点之间的空格,
点与点之间为空或为空格, 则默认为0, 如 '...' 视为'0.0.0.0',
点数量为3,
数值不大于255.
其他情况均为非法地址.
代码如下:
程序代码:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int isIpv4Correct(const char*, int*);
int main(int argc, char const *argv[])
{
    char ipv4str[50] = {};
    int ipv4int[4] = {};
    strcpy(ipv4str, "...");
    puts(ipv4str);
    if (isIpv4Correct(ipv4str, ipv4int)) {
        puts("Correct!");
        for (int i = 0; i < 4; i++) {
            printf("%d ", ipv4int[i]);
        }
    } else {
        puts("Error!");
    }
    return 0;
}
int isIpv4Correct(const char *ipv4str, int *ipv4int) {
    int i = 0, ip = 0;
    int res = 0;
    int dotCount = 0;
    int inNum = 0;
    char cur = ipv4str[i];
    while (cur) {
        if (!isdigit(cur) && cur != ' ' && cur != '.') {
            return 0;
        } else if (isdigit(cur)) {
            inNum = 1;
            res = res*10 + cur-'0';
            if (res > 255) return 0;
        } else if (cur == ' ') {
            if (inNum) {
                return 0;
            } else {
                while (cur == ' ') {
                    cur = ipv4str[++i];
                }
                continue;
            }
        } else {
            ++dotCount;
            inNum = 0;
            ipv4int[ip++] = res;
            res = 0;
        }
        cur = ipv4str[++i];
    }
    if (dotCount != 3) return 0;
    ipv4int[ip] = res;
    return 1;
}



											
	    

	