C++ 숫자 각 자릿수 구하기, 문자열 숫자 각 자릿수 구하기
Notepad96
·2020. 11. 21. 06:22
300x250
1. 숫자 각 자릿수 구하기
숫자의 각 자릿수를 구하기 위해서는 나누기와 나머지 연산을 사용하여서 가능하다.
또한, 숫자를 문자열로 형변환함으로써 인덱스를 사용하여 각각의 자리의 해당하는 숫자에 접근할 수 있다.
단, 숫자형 문자열에서 각 문자에 접근하여 int형으로 저장한다면 아스키 코드상에 10진수를 얻게 된다.
따라서 올바른 숫자를 얻기 위해서 추가적인 작업을 해주어야 한다.
2. 코 드
환경 : Visual studio 2019
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int a = 1234567;
while (a) {
cout << a % 10 << " ";
a /= 10;
}
cout << "\n===========================\n";
a = 1234567;
string s = to_string(a);
vector<int> v, v2;
for (char c : s) {
cout << c << " ";
v.push_back(c);
}
cout << "\n===========================\n";
cout << "vector1 : ";
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
v2.push_back(s[i] - '0');
}
cout << "\n===========================\n";
cout << "vector2 : ";
for (int i : v2) {
cout << i << " ";
}
cout << "\n===========================\n";
return 0;
}
- 나누기와 나머지 연산을 사용하여서 while 루프를 돌면서 일의 자리수부터 각 자릿수를 구할 수 있다.
- 숫자를 문자열로 형변환함으로써 인덱스로 간단하게 각 자릿수의 문자에 접근할 수 있다.
- 문자열의 문자들은 char형으로서 이를 int형의 vector의 저장하고자 한다면 0~9에 해당하는 10진수 아스키 코드(48~57)가 저장된다.
따라서 올바른 숫자를 읽고자 한다면 '0'(48)를 빼줌으로서 0~9에 해당하는 숫자를 얻을 수 있다.
300x250
'C++ > Algorithm' 카테고리의 다른 글
[Algorithm/C++] 선택 정렬(Selection Sort) - 선택하여 교환 (0) | 2022.09.19 |
---|---|
[Algorithm/C++] 버블 정렬(Bubble Sort) - 거품 정렬 (0) | 2022.09.18 |
C++ Integer to Binary - 2진수 구하기 (0) | 2020.11.19 |
C++ 소수 판별하기 (0) | 2020.11.16 |
2의 n제곱 수인지 판별하기 (0) | 2020.11.07 |