ユーザーIDが正しいかどうかを確認するにはどうすればいいですか? 私はユーザーi/pから名前と年齢を問い合せています。入力されたデータは正しいかどうか? コードはC言語にする必要があります。正しいユーザー入力を確認する
答えて
名前は、ユーザー入力を文字列で保存します。配列要素が 'a'から 'z'または 'A'から 'Z'にならない場合は、文字列をたどり、エラーを言います。年齢を考慮すると、char配列または整数を使用できます。ユーザーが 'a'を入力すると整数を使用している間にそのASCII値が使用されます。しかし、char配列を使用すると、数字だけと制限があります。
メインINT()
{
char name[10],age[2];
int i;
printf("Enter name and age \n");
scanf("%s %s",name,age);
for(i=0; name[i]!=NULL; i++)
if(isdigit(name[i]))
printf("Error, name in aplahbets\n");
for(i=0; age[i]!=NULL; i++)
if(isalpha(age[i]))
printf("Error, age in numbers\n");
// Rest of your code Your code
return 0;
}
構文を使って説明してください。 – kamakshi
thanx(サポートあり)... – kamakshi
名前が9文字以上の場合、ソリューションがクラッシュする、!= NULLも拡散します。 – user411313
年齢は、典型的には、アプリケーションに応じて0から130の範囲の自然数であり、より現実的な範囲は、15であるかもしれませんあなたの要件を見てください。
int IsNaturalNumber(const char* number)
{
while(*number) {
if(!isdigit(*number))
return 0;
++number;
}
return 1;
}
char age[20+1] = { 0 };
if(!fgets(age, 20, stdin)) error("EOF reached!");
if(!IsNaturalNumber(age)) error("Please enter a natural number!");
int age_as_int = atoi(age);
if(age_as_int < LOWER_AGE_BOUND || age_as_int > UPPER_AGE_BOUND)
error("Age must be between %d and %d.", LOWER_AGE_BOUND, UPPER_AGE_BOUND);
名前はトリッキーです。正しい名前は何ですか?一般的に使用される形式は、敬称(Mr/Mrs./Miss)、名および姓/姓です。これは多くの文化をカバーしています。言語を考慮に入れることを忘れないでください。 Mr. = Herr、Mrs. = Frau、Miss =Fräulein、ドイツ語など。また、いくつかの文化では、姓の前に姓(たとえば日本)が好きです。あなたの要件は何ですか?あなたはすべての文化を考慮する必要がありますか?
入力の検証を行う一般的な方法は、入力をプログラムに文字列として読み込み、検証して予想される型に変換することです。
名前の場合、あなたにできる有効なバリデーションはあまりありません。入力があなたの予想を超えていないことを確認することができますが、そうでなければほとんどの入力は有効な名前とみなされます。
年齢には、さらに多くのバリデーションがあります。最初に、入力は有効な整数でなければならず、第2に、それは特定の範囲内でなければなりません。
あなたは以下の機能を使用できます。短いソリューションをチェックアンダーフロー/任意の年齢オーバーフローなしで
char* readString(char* buffer, size_t buflen)
{
char* result;
result = fgets(buffer, buflen, stdin);
if ((result != NULL) &&
(strlen(result) == buflen-1) &&
(result[buflen-2] != '\n'))
{
/* too long a line */
/* read the remainder of the line, to clear the input buffers */
while ((result != NULL) && (result[strlen(result)-1] != '\n'))
{
result = fgets(buffer, buflen, stdin);
}
/* set result to NULL to indicate an error */
result = NULL;
}
if (result != NULL)
{
/* strip the newline */
result[strlen(result)-1] = '\0';
}
}
bool readInt(int low, int high, int* value)
{
char temp[80];
if (readString(temp, 80))
{
char* endp;
long result = strtol(temp, &endp, 10);
if ((*endp == '\0') && (result >= low) && (result <= high))
{
*value = result;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
は次のようになります。
char name[40];
unsigned age;
if(scanf("%39s%u",name,&age)==2)
printf("name=%s age=%u",name,age);
else
puts("input invalid");
あなたはこれまで任意のユーザからのリターンを確認する必要があります-inputs。
- 1. forloopのユーザー確認入力
- 2. Pythonでのユーザー入力の正しい綴りを確認する
- 3. Bash:ユーザー入力が正しいことを確認してください
- 4. 入力パスワードが正しいかどうかを確認する
- 5. ユーザー入力の長さの確認
- 6. フォームフローでのユーザー入力の確認
- 7. ユーザーが整数を入力したことを確認する
- 8. ユーザーが入力した値を確認する
- 9. ユーザー入力にエレガントなエラーを確認してください
- 10. ユーザーが正しいデータ型を入力していることを確認します。 C#Console App
- 11. ユーザーの入力に対してリストを確認しますか?
- 12. フィールドに入力中にユーザー名を確認しますか?
- 13. Java - Libgdx:テキストフィールドでユーザーの入力を確認しますか?
- 14. ユーザーが入力済みであることを確認する
- 15. ユーザーが正確な文字列を入力したかどうかを確認する
- 16. ユーザーの入力を受けて数値を確認する
- 17. ユーザー入力のリンク構文を確認する
- 18. JavaFX TableView。そのユーザー入力uniqe値を確認する方法
- 19. 0と1だけのユーザーの入力を確認する
- 20. テキストフィールドを使用してユーザー入力を確認しています
- 21. 正規表現を使用して入力の訂正を確認する
- 22. ユーザーに正しいユーザー名を入力する方法usernameパスワードバリデータ
- 23. ユーザー入力の確認中にエラーが発生しました
- 24. は、ユーザーが入力したパスワードが7zipで正しいかどうかを確認します
- 25. Noob c#。メソッド内のユーザー入力を確認しようとしています
- 26. ユーザーの入力が正しくないかどうかを確認する関数
- 27. VB、コンソールアプリケーション、ユーザー入力を確認して、有効な番号を入力したことを確認するにはどうすればよいですか?
- 28. javascriptを使用してユーザーが正しい値を入力したかどうかを確認
- 29. 入力キーを入力して回答を確認します
- 30. 正規表現で数字入力を確認する - C#
これはエラーメッセージですが、i/pデータが正しくないかどうかを確認する方法を教えてください。 – kamakshi
私の組み込み検証はあなたの入力が間違っています手紙、句読点がない)。適切な言語を使用して質問を書く気にしない場合、どのように誰かが世話をして答えを書くことを期待していますか? – Suma