2016-08-29 3 views
1

제공된 출력을 생성하는 방법이 궁금합니다. 출력은 (예상되는) 알파벳에서 5 번째 문자 이후의 알파벳 문자는 25C++에서 char의 순서를 계산합니다.

예제 프로그램

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string str = "e"; 
    int numericalvalue = ((str[0]) - 'a'); //this line of code im trying to understand 
    cout << numericalvalue; 
    return 0; 
} 
+8

ASCII 테이블에 익숙합니까? – AndyG

+1

문자는 내부적으로 숫자 (ASCII 표 참조) 만 있으면 문자가 나타내는 숫자를 뺍니다. – Hayt

+0

예. 그러나 문자 e의 십진수 값은 101입니다.이 값에서 a의 값을 뺀 다음 그것을 반환합니까? – simon

답변

3

그것은에있다를 반환 Z 문자에 모든 방법을 작품 4 ASCII 테이블을 사용하십시오.

집합의 문자에는 고유 한 정수가 할당됩니다. 귀하의 경우, 문자 'a'은 ASCII 표의 값 97을 가지며 문자 e의 값은 101입니다. 101 - 97 = 4을 뺀 결과가 최종 결과가됩니다. 아스키 테이블에

더는 here

+1

네, 고맙습니다. 고맙습니다 – simon

1

문자 '는'는 ASCII 진수 값을 가지고 찾을 수 있습니다 97

문자 'A'는 진수 값보다 97

에게이 후 빼기

str[0] - 'a' 

은 알파벳의 문자 위치를 생성하는 ASCII 10 진수 값을 사용합니다.

1
char e = 'e'; 
char a = 'a'; 
std::cout << "e = " << static_cast<int>(e) << std::endl; 
std::cout << "a = " << static_cast<int>(a) << std::endl; 

컴퓨터에는 "문자"와 같은 추상 요소가 없습니다. 그들은 1과 0의 .. (숫자)로만 작동합니다. 컴퓨터는 숫자로 작동하지만 알 수 있습니다. 일단 화면에 인쇄되면 "문자"를 나타내는 .ttf 파일에있는 그래픽을 사용하십시오. int을 입력하는 (구체적으로는, 적분 촉진을 거친다)

2

char가 일체형이므로 암시 적 변환이다. 기본 char으로 표현할 수있는 각 문자는 0-255 (또는 -128-127)의 숫자 값을가집니다. 따라서 'a'- '0'은 실제로는 97 - 48int을 말하는 것과 같으므로 실제로 유효합니다.

관련 문제