"이런" rvalue 상태인 문자열를 숫자로 atoi() 'a' to int
문자열을 문자로 c_str() str()을 char로
문자열을 숫자로 stoi() string to int
숫자인지 확인 isdigit() true / false 리턴
atoi() 와 c_str(), stoi() : 모두 데이터의 형변환에 쓰인다
변환 전 후, 우리가 인식하는 데이터의 값은 같다. 물론 컴퓨터나 프로그램에는 중요하고 필요한 차이다
atoi() : char형을 인자로 받아 int형으로 바꿔준다. 숫자가 아닌 문자나 다른 것일 경우, 변환에 실패하고, 0을 리턴한다. 정상작동 결과인 숫자 0인지 실패 결과인 boolean 값 0인지를 구분하기 위해서 isdigit을 사용하여 숫자여부를 판별가능하다
stoi() : 문자열을 숫자로 바꿔준다. 사용법은 atoi 와 같다
atof -float형, atod -double형, atol -long long형 등 i대신 자료형에 맞게 바꿀수있다. stoi도 마찬가지!
c_str() : 문자열을 string 타입에서 char 배열 로 바꾸어 string 타입에서 작동하지 않는 char 배열에서만 쓸 수 있는 함수들을 사용가능하게 한다. atoi 같은 경우 char이어야 사용가능하지 string 으로는 불가하므로 문자열을 atoi로 비교하려면 c_str 을 사용해줘야 한다
문자열.c_str() : 인자로 받은 문자열을 char 형의 배열로 바꿔준다. string 자료형이 쓰지 못하는 char 만이 쓸 수 있는 함수들을 사용하기 위해서 쓰인다. c_str으로 문자열을 문자로 바꾸고, atoi로 다시 숫자로 바꿀수도 있다. 하지만 이 과정은 stoi를 쓰면 한번에 해결된다.
isdigit() : 0부터 9까지의 숫자형인지를 확인하는 함수. 이거 십진수인가요? 라고 묻는 이름처럼 true와 false가 리턴된다. atoi 와 stoi에서 0이 리턴 될 경우 0이 숫자 0인지 boolean값의 false를 뜻하는 0인지를 판단하기 위해서도 쓰인다.
'C++ > 기초 및 알고리즘 함수' 카테고리의 다른 글
[c++] 배열 한번에 초기화 하는법, fill (0) | 2022.06.15 |
---|---|
[c++] string 의 substr, find (0) | 2022.06.14 |
[c++] lowe_bound, upper_bound, rotate (0) | 2022.06.13 |
[c++] 제곱, 제곱근 함수 pow, sqrt (0) | 2022.06.10 |
구조체 내부에서 연산자 오버로딩 (0) | 2022.06.09 |
댓글