私は C を使用している生後 2 か月の子供です。引数として ip-range を main 関数に渡し、個々の ips を持つ配列を取得するという簡単な問題があります。
例えば。func-ip-range は argv として 1.1.1.1-10 を取り、配列 [1.1.1.1, 1.1.1.2, 1.1.1.3 ......... 1.1.1.10] を返す必要があります。
私がこの問題に取り組んでいた方法は次のとおりです。コードがどこで窒息しているのかわからないため、「セグメンテーション違反」をデバッグできませんでした。
この子を救うために、どんな助けも大歓迎です。
アプローチは、コマンド ライン引数を *ip_str に渡し、この文字列を 1 文字ずつ読み取ることです。最初に会ったら「。」カウント '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);
}