2014-01-26 2 views
0

상황은 다음과 같습니다.누구든지이 오류를 확인할 수있는 방법을 생각할 수 있습니까?

내 프로그램은 사용자 입력을 두 개의 char 배열 (문자열 사용 금지)로 읽습니다. 사용자가 다음과 같이 정보를 입력합니다. 단어, 단어

읽을 때 사용되는 임시 문자가 읽히지 않는 조건의 do-while 루프를 사용하여이 작업을 수행합니다. 계속하려면 < < 임시 변수를 사용하고 배열의 다음 문자로 임시 변수를 할당하십시오. 그런 다음 cin.get (variableName, 100, '\ n')을 사용하여 두 번째 char 배열을로드합니다.

사용자가 형식 단어에 단어를 입력하지 않으면 오류 메시지가 표시됩니다. 오류 메시지가 표시됩니다. 아무도 내가 이것을 확인할 수있는 조건을 알고 있습니까? 나는 그들이 단어, 단어, 단어, 단어, 또는 아무것도 입력하지 않을 것이라고 가정하고 있지만 그들은 단지 no로 단어를 입력 할 수도 있습니다.

+2

C++ 11 컴파일러를 가정하면 ''을 사용하여 입력의 유효성을 검사 할 수 있습니다. 어느 것이 나의 두 번째 요점을 연상케 하는가? char 배열을 사용하지 말고 (악의를 띤다)'std :: string'을 사용하라. – Borgleader

+1

"문자열을 사용할 수 없습니다"이것은 숙제 냄새가납니다. 숙제인가요? 그렇다면 태그를 붙입니다. 또한 C로 태그를 지정하면 여기에 잘못된 것 같습니다. – PlasmaHH

+1

@PlasmaHH C 태그를 제거하면 동의합니다. 숙제 태그를 추가하면 IIRC 때문에 더 이상 사용되지 않습니다. – Borgleader

답변

3

도 C++ 11 정규식없이 입력을 검증하는 것은 매우 간단해야

  1. 카운트 세미콜론 두 문자열 입력. 오직 하나만 있어야합니다. 두 어레이
  2. strlen 모두 배열> = 1
  3. strlen는 = 배열 ​​크기 -1- <되어야 할 것이다.
  4. 특정 유형의 문자 만 허용되는 경우 (예 : 공백이 없거나 구두점) 허용되지 않는 문자가 있으면 두 배열을 모두 스캔하십시오.
관련 문제