2016-07-14 3 views
-2

C++을 사용하여 일련의 문자를 숫자로 변경하려고하며이 코드를 작성하여 시작했습니다.문장 C++ (문자를 숫자로 바꾸기)

그러나 digit1 변수를 계산하는 계산이 실행되지 않는 것으로 보입니다.

의견이 있으십니까?

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    int qtyofnumbers, num, digit1, counter; 
    char letters, upperlower; 

    cout << "Enter a letter: "; 
    cin >> letters; 

    for (counter = 0; counter < 8; counter++) 
    { 
     if (counter == 3) 
      cout << "-"; 

     num = static_cast<int>(letters) - static_cast<int>('A'); 

     if (0 <= num && num < 26) 
      digit1 = (num/3) + 2; 

     if (((num/3 == 6) || (num/3 == 7)) && (num % 3 == 0)) 
      digit1 = digit1-1; 

     if (digit1 > 9) 
      digit1 = 9;  

     cin >> letters; 
    } 

    cout << digit1; 

    return 0; 
} 
+2

'{'및'}'를 사용하십시오 !!! – jtbandes

+1

도움을 요청하기 전에 코드를 올바르게 들여 씁니다. 그것은 그것을 읽는 것이 어렵습니다. – HolyBlackCat

+2

디버거로 코드를 단계별로 실행 했습니까? – pm100

답변

0

내 생각에 문제는 입력 내용입니다. 대문자 또는 소문자를 입력하고 있습니까? 그들의 ASCII codes은 다릅니다. 그래서, 당신은 아마, @jtbandes에서 언급 한 바와 같이,

또한
if (num >= 'a') 
    num = letters - 'a'; 
else 
    num = letters - 'A'; 

처럼 뭔가

num= static_cast<int>(letters)-static_cast<int>('A'); 

에서 코드를 변경 중괄호 {}을 사용하고 싶습니다. 공백은 C++의 범위를 결정하지 않습니다. if 문 다음에 코드가 한 줄만 나오는 경우에도 차후에 두통을 피할 수 있습니다.

0

정적 캐스트가 필요합니까? 문자열 스트림을 사용하거나 .at()를 사용하여 문자별로 문자열 문자를 탐색하고 변환을 위해 ascii 값을 사용하는 것이 좋습니다. http://web.cs.mun.ca/~michael/c/ascii-table.html.

관련 문제