어떻게 사용자 i/p가 ac 코드를 통해 정확한지 확인할 수 있습니다 .. 예를 들어 우리는 사용자 i/p의 이름과 나이를 묻는 중 어떤 구문을 사용해야하는지 입력 된 데이터가 맞는지 여부 코드는 C 언어 여야합니다.정확한 사용자 입력을 확인하십시오
답변
사용자 입력란은 문자열로 저장하십시오. 배열 요소가 'a'에서 'z'또는 'A'에서 'Z'가 아니면 문자열을 탐색하고 오류를 말하십시오. 연령에 따라 char 배열 또는 정수를 사용할 수 있습니다. 사용자가 'a'를 입력하면 정수를 사용하면서 ascii 값이 사용됩니다. 그러나 문자 배열을 사용하면 숫자와 한도 만 볼 수 있습니다.
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 (독일인). 또한 일부 문화권에서는 이름 (예 : 일본) 이전에 가족 이름을 선호합니다. 요구 사항은 무엇입니까? 모든 문화를 고려해야합니까 아니면 소수만을 고려해야합니까?
입력 유효성 검사를 수행하는 일반적인 방법은 입력을 프로그램으로 문자열로 읽은 다음 프로그램의 유효성을 검사하고 예상되는 유형으로 변환하는 것입니다.
이름의 경우 사용자가 할 수있는 유용한 유효성 검사가별로 없습니다. 입력 값이 예상 값을 초과하지 않는지 검사 할 수 있지만 그렇지 않으면 대부분의 입력을 유효한 이름으로 간주해야합니다.
연령대에 따라 더 많은 유효성 확인이 가능합니다. 먼저 입력은 유효한 정수 여야하며 두 번째로 특정 범위 내에 있어야합니다.
다음과 같은 기능을 사용할 수 있습니다 : 수/언더 짧은 솔루션을 확인 모든 연령 오버 플로우없이
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");
당신해야 사용자로부터 수익 적 확인 - 입력.
- 1. 정확한 헤더 파일을 확인하십시오.
- 2. 사용자 입력을 배열에 저장하고 인덱스에 위배되지 않는지 확인하십시오.
- 3. iPhone에서 ASCII 호환성을 위해 키보드 입력을 확인하십시오.
- 4. 간격으로 사용자 입력을 캡처하십시오.
- 5. 사용자 입력을 제어하는 방법
- 6. 사용자 입력을 삭제하려면 어떻게해야합니까?
- 7. 사용자 입력을 별표로 마스크하십시오.
- 8. 배경에 사용자 입력을 처리하십시오.
- 9. 사용자 입력을 다시 표시
- 10. 정확한 위치에서 사용자 입력 받기
- 11. 사용자 입력을 구문 분석하는 방법은 무엇입니까?
- 12. 사용자 이름이 있는지 확인하십시오.
- 13. 사용자 지정 대화 상자 ... 사용자 입력을 기다리시겠습니까?
- 14. JSP 사용자 정의 태그는 사용자 입력을 캡처합니다.
- 15. 사용자 입력을 저장하는 Java Arraylist
- 16. iPhone에서 사용자 입력을 얻는 방법
- 17. 사용자 입력을 URL의 일부로 sanitizing
- 18. 사용자 입력을 기반으로 jqgrid 필터링
- 19. Powershell은 icacls에 사용자 입력을 전달합니다
- 20. 사용자 입력을 선택하지 않고 무시하십시오
- 21. 는 mysql_real_escape_string 사용자 입력을 왜곡 -
- 22. 익명 사용자 입력을 어떻게 처리해야합니까?
- 23. NASM에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 24. 사용자 입력을 JAVA 문자열에 저장
- 25. 사용자 입력을 기반으로 단락 만들기
- 26. 사용자 입력을 저장하고 사용하는 방법
- 27. 자구로 사용자 입력을 얻으려면 어떻게해야합니까?
- 28. 필자는 $ _FILE 사용자 입력을 보호해야합니까?
- 29. 'before_validate'또는 'before_save'에 사용자 입력을 삭제해야합니까?
- 30. 사용자 입력을 파일로 처리하기위한 전략
이것은 오류 메시지이지만 i/p 데이터가 올바른지 여부를 확인하는 방법은 무엇입니까? – kamakshi
위의 입력 내용은 위 입력 내용이 정확하지 않음을 나타냅니다. 편지, 구두점 누락). 적절한 언어를 사용하여 질문을 쓰지 않으려는 경우, 누군가가 답변을 쓰기 위해 어떻게 신경 쓸 것으로 기대합니까? – Suma