코딩테스트/programming_C++

baekjoon #11720_숫자의 합_c++

prometedor 2021. 10. 25. 21:28
#include<iostream>
#include<string>

int main() {
int N, sum = 0;
std::cin >> N;
std::string str;

std::cin >> str;

for (std::size_t i = 0; i < str.length(); i++) {
sum += str[i] - '0';  // 자동 형변환
}

std::cout << sum;
}

str[i]는 string타입이지만 int 타입으로 자동 형변환 되어 아스키로 변형됨

문자 '0'의 아스키 값이 48이므로, 아래와 같이 문자 '0'을 빼서 원래 숫자의 값을 나타낼 수 있음

 

'1' - '0' = 49 - 48 = 1

'2' - '0' = 50 - 48 = 2

'3' - '0' = 51 - 48 = 3

.

.

.

'8' - '0' = 56 - 48 = 8

'9' - '0' = 57 - 48 = 9