倉庫内のアイテムを追跡するプログラムを C で作成しています。
そして、ユーザーに少なくとも1つの数字を含めるように強制したい! 例 dvd1、dvd2。ハロー1、ハロー20
これを行う方法はありますか?現時点ではscanfを使用しています。
製品コードに xx-xxx-xxx の要件形式を持たせたいのですが、x は数字です。
scanf を使用しています ( %[0-9-]s
Mvhアントン!
倉庫内のアイテムを追跡するプログラムを C で作成しています。
そして、ユーザーに少なくとも1つの数字を含めるように強制したい! 例 dvd1、dvd2。ハロー1、ハロー20
これを行う方法はありますか?現時点ではscanfを使用しています。
製品コードに xx-xxx-xxx の要件形式を持たせたいのですが、x は数字です。
scanf を使用しています ( %[0-9-]s
Mvhアントン!
scanf はそのようには機能しません。詳細な検証はありません。
入力を char 配列に読み込み、各文字をループして数字かどうかを確認する必要があります。
このようなもの(テストされていません):
char buffer[1000];
int i = 0, hasDigit = 0;
scanf("%s", buffer);
while (i < sizeof(buffer) && buffer[i] != 0 && !hasDigit)
{
hasDigit = isdigit(buffer[i]);
i++;
}
// if hasDigit is 0, there are no digits
注: バッファに収まらない文字数を入力すると、バッファ オーバーフローが発生する可能性があるため、scanf は適切ではありません。fgets(buffer, sizeof(buffer), stdin); を使用することをお勧めします。
入力を読むと、 This SO questionのように繰り返すことができます。chars
その時点から、必要な入力と一致するかどうかを簡単に確認できます。