반응형
snowman95
코딩수련장
snowman95
전체 방문자
오늘
어제
  • 분류 전체보기 (229)
    • 앱테크 (3)
    • 옵시디언 (5)
    • 드라마, 영화 (1)
    • 개발자 이야기 (23)
    • 프로젝트 (10)
      • 프로젝트 방법론 (7)
      • 프로젝트 기록 (2)
      • Github (1)
    • 개발 지식 (0)
      • 디자인 패턴 (0)
    • 프론트엔드 개발 (5)
      • 테크트리 (2)
      • React.js (19)
      • ReactNative (2)
      • Next.js (6)
      • GraphQL (6)
      • 패키지 매니저 (2)
      • 라이브러리 (3)
      • 상태관리 라이브러리 (4)
      • Web 지식 (3)
      • HTML CSS (26)
      • Javascript (16)
      • 도구 (Tool) (3)
      • 성능 최적화 (1)
      • 디자인시스템 (0)
    • Python (53)
      • 모음집 (1)
      • 문법 (12)
      • 라이브러리 (15)
      • 알고리즘 (10)
      • 백준 문제풀이 (9)
      • 코딩테스트 (2)
      • 도구 (Tool) (3)
    • C++ (20)
      • 알고리즘 (6)
      • 삼성SW기출 (6)
      • 삼성 A형 (6)
    • 데이터사이언스 (1)
    • 인프라 (9)
      • 하드웨어 지식 (4)
      • Ansible (2)
      • Database (2)
      • 쉘스크립트 (1)
    • 주식 (0)
    • 취업 준비 (4)
      • 취업 이야기 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 공간복잡도
  • 백준
  • C++
  • Next.js #graphql #tailwind.css
  • nextjs
  • 전공 요약 #데이터베이스
  • 전공 요약 #네트워크
  • 티스토리챌린지
  • GraphQL
  • 알고리즘
  • 면접
  • 언어
  • 나의 해방일지
  • 오블완
  • 전공 요약 #운영체제
  • 기계식키보드 #nuphy
  • 전공요약
  • 삼성SW역량테스트
  • A형
  • 삼성SDS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
snowman95

코딩수련장

C++/알고리즘

[실전 압축 알고리즘] - C/C++ 문자 숫자 변환

2019. 10. 18. 23:06
728x90
반응형

본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. 


C 스타일

변환 함수  변환 모습 설명
문자열 -> 숫자 #incldue<cstdlib> (stdlib.h)
정수형 atoi, atol, atoll
실수형 atof


int atoi (const char* str); 
"4" -> 4
"123" -> 123 
문자열을 숫자로 변환해준다.
다른 형으로는 atof, atol, atoll 이 있다. 
숫자 -> 문자열 #incldue<cstdlib> (stdlib.h)
char * itoa (
int value,
char * str,
int base );
5 -> "5"
123 -> "123"
value를 base진법으로 변환하여 str에 저장
비표준 함수이기 때문에 MS VS 에서만 가능
표준 호환 대안은 sprintf 일 수 있습니다 .
  • sprintf(str, "% d", value)는 10 진수로 변환
  • sprintf(str, "% x", value)는 16 진수로 변환
  • sprintf(str, "% o", value)는 8 진수로 변환

 

C++

변환 함수 변환 모습 설명
문자열 -> 숫자 #include<string>
정수형
stoi, stol, stoul, stoll, stoull


실수형
stof, stod, stold


int stoi(
const string& str,
size_t* idx = 0, 
int base = 10)
 
float stof(const string& str, size_t* idx = 0)
"4" -> 4
"123" -> 123 
str을 base 진수로 취급하여 정수로 변환
idx는 정수가 아닌 것이 등장하는 인덱스
stoi("32a", idx)
idx = 2



디폴트 파라미터 때문에
stoi(const string& str) 까지만 써도 됨 


주의
string n1 = "1010"; 
int a = stoi(n1, nullptr, 2);
a : 10 이렇게 되는거임 


C++ 11 버전 이상 사용 가능
숫자 -> 문자열 #include<string>
string to_string(자료형)


자료형은 다음과 같다.
int
long
long long
unsigned
unsigned long
unsigned long long
float
double
long double
5 -> "5"
123 -> "123"
1.23 -> "1.23"

C++ 11 버전 이상 사용 가능

 

편법 - 알고리즘을 풀 때 유용하게 많이 사용됩니다.

변환 방법 변환 모습
문자 -> 숫자 문자 - '0' char a = '4'; 
int b = a - '0';
b : 4
숫자 -> 문자 숫자 + '0' int a = 5;
char b = a + '0'; 
b : '5'

 

10진법을 2진법으로 출력

#include<bitset>

int a = 128; 
cout << bitset<8>(a); 

output : 00001010

 


itoa와 착각하기 쉬운 것

 

iota 함수

value값에서 시작하여 ++value를 반복하여 얻어지는 값으로 주어진 범위[first, last)를 채운다. 

#include <numeric>
 
template<class ForwardIterator, class T>
  void iota(ForwardIterator first, ForwardIterator last, T value); 

 

반응형
저작자표시 (새창열림)

'C++ > 알고리즘' 카테고리의 다른 글

C++ 정렬 알고리즘 (버블정렬, 삽입정렬, 선택정렬, 합병정렬, 퀵정렬, 힙정렬, 셀정렬, 기수정렬)  (0) 2019.10.22
[실전 압축 알고리즘] - 실수형을 특정 소수점 까지 출력  (0) 2019.10.18
[실전 압축 알고리즘] - 비트 연산  (0) 2019.10.18
[실전 압축 알고리즘] - C++ 입출력  (0) 2019.08.24
[실전 압축 알고리즘] - 시간, 공간 복잡도  (0) 2019.08.24
    'C++/알고리즘' 카테고리의 다른 글
    • C++ 정렬 알고리즘 (버블정렬, 삽입정렬, 선택정렬, 합병정렬, 퀵정렬, 힙정렬, 셀정렬, 기수정렬)
    • [실전 압축 알고리즘] - 실수형을 특정 소수점 까지 출력
    • [실전 압축 알고리즘] - 비트 연산
    • [실전 압축 알고리즘] - C++ 입출력
    snowman95
    snowman95
    (17~19) Unity/Unreal Engine 게임 프로그래머 (20~21) System Administrator ___________ (22~) React 웹 프론트앤드 개발자 __________ 깃헙 : https://github.com/snowman95

    티스토리툴바