2010-04-03 9 views
2

질문에 대답하기로 선택한 경우, 프로그래밍 분야의 초보자이며 해결책에 대해 다른 설명보다 약간의 설명이 필요할 수 있습니다 작업.문자열에서 단일 문자를 int로 변환하는 방법

도움 주셔서 감사합니다.

내 문제는 문자열의 일부 (숫자로만 구성됨)로 계산을하려고하지만 개별 문자를 int로 변환하는 방법을 알지 못한다는 것입니다. 문자열의 이름은 "message"입니다.

for (int place = 0; place < message.size(); place++) 
     { 
      if (secondPlace == 0) 
      { 
       cout << (message[place]) * 100 << endl; 
      } 
     } 

감사합니다. 문자 이후

int number = message[place] - '0'; 

:

답변

5
당신이 정수 0에있는 문자 '0'을 변환 할 것을 의미하는 경우

1-'1'는, 등등은,이 작업을 수행하는 가장 간단한 방법보다 다음 아마도 숫자가 오름차순으로 ascii로 인코딩 된 경우 해당 문자의 ASCII 값에서 '0'의 ascii 값을 빼고 숫자와 동일한 숫자를 얻을 수 있습니다.

+0

캐스트가 필요 없습니다. – Tronic

+0

EBCDIC 시스템에서는 작동하지 않습니다. –

+0

@Jive - 아니요, C (및 확장, C++) 표준은 숫자가 연속임을 보장합니다. EBCDIC에서 (코드 240 ~ 250). –

관련 문제