일정 길이의 문자열이 숫자로만 이루어져 있을 때 이 숫자들의 합을 구하는 방법이다.
컴퓨터에서 문자는 전부 아스키 코드로 저장이 되고 이 아스키 코드의 값을 알면 문자를 숫자로 바꿀 수 있다.
문자 '0'의 경우 아스키 코드로 48이고, 문자 '1'의 경우 아스키 코드로 49이다.
문자 '1'을 숫자 1로 바꾸기 위해서는 문자 숫자에서 문자'0'을 빼면 된다.
char c = '1';
int i = c - '0';
이렇게 하면 i에는 1의 값이 들어간다. (문자열 '1'은 아스키 코드로 49이고 문자열 '0'은 아스키 코드로 48이기 때문에 계산을 하면 1이 된다)
문자열의 각 자릿수를 더하는 방법은 위의 방법을 응용하면 된다.
#include <iostream>
#include <string>
int main() {
int sum = 0;
std::string str;
std::cin >> str;
for (int i = 0; i < str.length(); ++i)
{
sum += str[i] - '0';
}
std::cout << sum;
}
이렇게 하면 문자열의 각 자릿수마다 더하는 것이 가능해진다.
'게임프로그래밍 > C++' 카테고리의 다른 글
[알고리즘] 합배열로 배열에서 일정 범위의 각 원소들의 합을 쉽게 구하기 (0) | 2025.02.21 |
---|