반응형
atoi == stoi 그리고 itoa == itos이기에 아래 두 stoi, itos에 대한 코드를 구현했습니다.
atoi에 들어가는 i는 모두 int를 의미하지만 여기서는 long long에 대한 값을 기본으로 정의하고 진행하였습니다.
(itos 경우 int로 넣어도 무관합니다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include <iostream> #include <cstdio> #include <string> using namespace std; template <typename T> void _swap(T &a, T &b) { T tmp = a; a = b; b = tmp; } template <typename T> T _stoi(char str[]) { int len = strlen(str); T mul = 1; T ret = 0; for (int i = len - 1; i >= 0; i--) { ret += (str[i] - '0') * mul; mul *= 10; } return ret; } void _itos(long long val, char *ret) { int len = 0; while (val) { ret[len++] = val % 10 + '0'; val /= 10; } ret[len] = '\0'; for (int i = 0; i < len / 2; i++) _swap(ret[i], ret[len - 1 - i]); } int main() { int arr[4]; char s[5] = "1214"; char tmp[65]; cout << "_stoi(\"1214\") :: " << _stoi<long long>(s) << endl; _itos(123, tmp); cout << "_itos(123) :: " << tmp << endl; return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Basic > C' 카테고리의 다른 글
부동소수점을 피해야 하는 이유 (0) | 2023.11.23 |
---|---|
strcpy, strlen, strcmp 구현 (0) | 2018.01.13 |
scanf를 자유자제로 이용해보기 (2) | 2017.04.18 |
Dangling pointer (0) | 2016.05.31 |
if else로 범할 수 있는 오류 (0) | 2016.03.24 |