誰かがよく説明された例を挙げてくれることを本当に願っています。どこでも検索していますが、適切な解決策が見つかりません。
私は C プログラミング クラスの紹介を受けています。最後の課題は、10 桁の ISBN をダッシュで検証するプログラムを作成することです... ISBN は文字列として CHAR 配列に入力されます。そこから、ISBN の有効性を計算できるように、各桁を区切って整数に変換する必要があります。その上、ダッシュは無視する必要があります..
私の考えたプロセスは、INT 配列を作成し、ループを使用して各文字を配列に格納し、atoi() 関数を介して渡すことでした。また、IF ステートメントを使用して、CHAR 配列の各部分をチェックし、ダッシュが見つかったかどうかを確認してみました。見つかった場合は、配列内の次のスポットにスキップします。それは次のように見えました:
int num[12], i = 0, j = 0, count = 0;
char isbn[12];
printf ("Enter an ISBN to validate: ");
scanf ("%13[0-9Xx-]%*c", &isbn);
do {
if (isbn[i] == '-') {
i++;
j++;
}
else {
num[i]= atoi(isbn[j]);
i++;
j++;
}
count++;
} while (count != 10);
しかし、それによってセグメンテーション違反が発生するため、IF ステートメントが実際にダッシュをフィルター処理したかどうかさえわかりません....
誰かがこれを試して解決できれば、本当に感謝しています。課題は12月4日の予定でしたが、12月7日まで延長されたので、時間に追われています。
説明にコードを書き込んでください。私は視覚学習者であり、段階的に見る必要があります。
コーディングする必要があることは明らかですが、この障害を乗り越えるまで先に進むことはできません。
前もって感謝します!