백준 단계별로 풀어보기(C++)/5)문자열

백준 11720) 숫자의 합 (C++)

코테 2023. 3. 25. 18:58

전체 코드

#include <iostream>

int main()
{
	char c[101];
	int N, sum = 0;
	std::cin >> N >> c;
	for (int i = 0; i < N; i++)
	{
		sum += (int)c[i] - 48;
	}

	std::cout << sum;
}

풀이

  • char 변수 선언, 숫자개수는 최대 100까지 입력될 예정이므로 다음과 같이 배열 선언
char c[101];
  • N번 반복하는 반복문
  • sum에 숫자 하나를 더함
  • c는 char 타입이므로 int로 형변환->int로 변환하면 아스키 코드 값으로 변하기 때문에 48뺌
for (int i = 0; i < N; i++)
{
	sum += (int)c[i] - 48;
}
  • 아래는 숫자 아스키코드 문자와 그에 해당하는 값(char 변수를 int로 형변환하면 얻을수 있는 값)
아스키코드문자 10진수값
'0' 48
'1' 49
'2' 50
'3' 51
'4' 52
'5' 53
'6' 54
'7' 55
'8' 56
'9' 57