2014-04-14 7 views
2

저는 C++ 프로그래밍의 초보자입니다. char/string에서 다음과 같은 요소가 어떤 종류인지 알 수있는 알고리즘/방법은 무엇입니까?C++에서 요소 유형을 얻는 방법은 무엇입니까?

내가

char b[]="Ab 3"; 

과 인덱스가 예를 들어, 경우의 말을하자 "내가"

i=2; 

인이는 내가 3가 =에 '3'을 의미한다. 질문 : 인덱스 2에 있다면 인덱스 3에 어떤 유형의 요소가 있는지 알려주는 알고리즘이 있습니까? 우리의 경우에는 'int'입니다.

대단히 감사합니다!

+0

['typeid'] (http://en.cppreference.com/w/cpp/language/typeid)로 충분할 수 있습니다. –

+0

문자 ''3 '과 정수'3 '은 같은 값이 아닙니다. 'char' 디지트를'int' 값으로 변환하려면 다음과 같이하면됩니다 :'int n = c - '0';'. (물론 isdigit (c)가 true 일 때만 작동합니다.) –

답변

7

char 배열의 요소 유형은 항상 char입니다. 그러나 문자가 isdigit (ch) 인 숫자인지 확인할 수 있습니다.

+0

그리고 이것을 끝내기 위해서'isalpha' 등의 함수도 있습니다. 따라서 각각의 문자를 검사하여 문자가 무엇인지 알아낼 수 있습니다 . 물론 이것은 유니 코드를 사용하는 경우 눈부신 실패로 시작합니다. – chris

4

<cctype> 헤더의 표준 C 함수 (또는 해당 C++ 함수)를 사용할 수 있습니다. 그들은 당신의 예를 들어 표준 들어

isalnum 
isalpha 
isblank 
iscntrl 
isdigit 
ishraph 
islower 
isprint 
ispunct 
isspace 
isupper 
isxdigit 

이다 :: isdigit에, 표준 : isxdigit ([2] B) (B [2]), 표준 : isgraph (B [2])도 표준 : isprint (b [2])는 0이 아닌 값을 반환합니다.

문자 배열의 요소 유형이 char임을 고려하십시오. 이 기능을 사용하여 예를 들어 문자가 숫자인지 알파인지 등을 확인할 수 있습니다.

관련 문제