c - 以 ip-range 字符串作为参数并返回包含 'C' 中的 ips 列表的数组的函数

标签 c arrays multidimensional-array function-pointers

我是使用 C 的 2 个月大的 child 。我有一个简单的问题,将 ip-range 作为参数传递给 main 函数并获得一个包含独立 ips 的数组。

例如。 func-ip-range 应将 1.1.1.1-10 作为 argv 并返回一个数组 [1.1.1.1, 1.1.1.2, 1.1.1.3 ......... 1.1.1.10]。

我解决这个问题的方法如下,我无法调试“段错误”,因为我不知道代码在哪里阻塞。

如果能帮助拯救这个 child ,我们将不胜感激。

方法是将命令行参数传递给*ip_str 并逐字符读取此字符串。一旦我遇到第一个'。'我增加计数 'c',当计数 c == 3 时,我想将字符串从那里存储到一个新的字符串变量,直到我到达 '-' 并在到达 '-' 之后将字符串的其余部分存储到一个新字符串。但是我对程序编写和调试的接触有严重的问题。

除此之外如何解决问题的方向对我的学习非常有帮助。

    void array_ip(char *ip_str,char **iplist)
    {
    for(i=0,j=0;*(ip_str+i) != '\0';i++)
    {
            if(*(ip_str+i)=='.')
            {c++;
            }
            if(c==3 && (*(ip_str+i )!= '-'))
            {
            *(a+j) = *(ip_str+i);
            j++;
            }
            if(*(ip_str+i) == '-')
            {
            break;
            }
    }
    for(k=0;*(ip_str+i) != '\0';k++,i++)
    {
    *(b+k)=*(ip_str+i);
    }

    printf("the starting last octet is %s \n",a);
    printf("the Ending last octet is %s \n",b);
    }

最佳答案

您可以改用的另一个函数是 strtok使用“-”作为分隔符。一旦你有了两个字符串,你就会知道你必须提供 ips 输出的限制。

关于c - 以 ip-range 字符串作为参数并返回包含 'C' 中的 ips 列表的数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601457/

相关文章:

c - 搜索指针会发生什么?

c - 编译共享库时 -fPIC 是什么意思

python - 在 python 中嵌入 C

c++ - 数组作为非类型模板参数

char类型按位运算失败转int

c - C中的数组字符串和普通数组有什么区别?

c++ - 多维数组的动态内存分配背后的算法是什么?

python sort itemgetter等效于N维嵌套列表

c++ - 为 int[][] C/C++ 传入 int*

ios - 带部分的 UiTableView 的数据 + UISegmentedControl