stirng = char의 집합


string s = "54321"
s[0]='5' = 아스키코드값 48
따라서 s[0]-'0' = 48-43= 5

그럼 만약
int a;
cin >>a 에서 b를 입력한다면?
b의 아스키 코드값인 98이 들어가야한다고 생각
근데 0 나옴
char형은 'a', '0' 둘다 가능하지만
int형에는 오로지 숫자만 들어가야하기 때문에 실제론 NULL이 들어가고 그 값이 아스키코드 0으로 나와버리는거라고 생각
1. 이거맞음?
근데 맞으면
int a = 'c' 했을때는 왜 되는거임?? 자동 형변환 그거때문인가?
cin이 어떤 코드로 짜여져있는진 모르겠지만 cin이라 그런건가?

그리고 질문2.
char c;
cin >> c;
cout << c-'a'+'a';
로 그냥 정수형 처리 시켜버렸는데

2. 만약 이 c값이 -값이 되거나 +127을 넘어가는경우는 어떻게되는거임??

그냥 애초에 -'a'한거부터 형변환 일어나서 정수로 처리되기 때문에 괜찮은건가?
그리고 이게 가능한이유는 쌩으로 'a'를 쓸때 'a'가 정수형으로 처리되기 때문에 형변환이 가능한거임??




챗 지피티 미칀련이 답변을 개븅sin같이해서 여기다 물어봄

+
범위가 알파벳이나,0~10까지의 빈도를 물어본다면
굳이 n^2 순회보다는 배열 공간 길게받아서 카운트 하는것 사고에 염두하기