본문 바로가기
반응형

전체 글58

로케일(Locale)이란? 로케일(Locale)란?프로그램이 실행되는 지역/문화권 환경 설정을 뜻한다.언어, 숫자 표기법, 화폐 기호, 날짜/시간 형식, 구분자(소수점 . vs ,) 등이 달라진다.예를 들어:한국/미국 → 3.14 (소수점 구분자 .)독일/프랑스 → 3,14 (소수점 구분자 ,)로케일과 문자열 → 숫자 변환의 관계여기에서는 C++을 기준으로 설명을 쓴다.atoi / stoi내부적으로 strtol 같은 C 함수 계열을 쓰기 때문에 현재 로케일 설정의 영향을 받을 수 있다.즉, 소수점이나 숫자 구분자가 로케일에 맞게 해석될 수 있다.예를 들어 독일 로케일(de_DE)에서는 "3,14"가 유효할 수도 있고, 미국 로케일(en_US)에서는 잘못된 입력으로 처리될 수 있다.from_chars로케일 독립적(locale-ind.. 2025. 10. 1.
C++ 문자열 -> 숫자 변환 atoi vs stoi vs from_chars 문자열 → 수 변환 3종 비교: atoi vs stoi vs from_chars항목atoistoifrom_chars헤더입력 형태const char* (널종료)std::string범위 (first, last) 포인터진법10 고정2–36 지정 가능정수: 2–36 지정 가능 / 부동소수: chars_format실패 처리0 반환(모호)invalid_argument, out_of_range 예외std::errc 코드 반환(예외 없음)범위 초과정의 불명확out_of_range 예외ec = result_out_of_range변환 끝 위치없음pos로 제공result.ptr 로 제공공백 스킵일부 구현 의존선행 공백 스킵함스킵 안 함 (직접 다뤄야 함)로케일 영향가능가능영향 없음힙 할당없음있을 수 있음없음표준/보급CC++.. 2025. 10. 1.
C++ 문자열 -> 정수 변환 stoi vs atoi C 언어부터 문자열을 정수로 바꾸는 전통적인 함수 atoi가 있었지만, C++11에서는 stoi 계열이 추가되었다.두 함수는 겉보기에 비슷하지만, 안전성·유연성·에러 처리 면에서 큰 차이가 있다. 1. atoi (C 표준, )int atoi(const char* str); C 스타일 문자열(char)만 입력 가능 (std::string은 직접 c_str() 필요)변환 실패 시 0 반환→ 실패한 건지 실제 값이 0인 건지 구분 불가예외 처리 기능 없음진법(base) 지정 불가 (무조건 10진수)#include #include using namespace std;int main() { cout 2. stoi (C++11, )int stoi(const std::string& str, size_t* p.. 2025. 9. 30.
C++ stoi 사용법 정리 std::stoi는 문자열을 정수(int)로 변환하는 기능을 한다. C 언어의 atoi와 비슷하지만 에러 처리와 세부 제어가 가능하다는 점에서 훨씬 안전하다. int stoi(const std::string& str, size_t* pos = 0, int base = 10);매개변수str : 변환할 문자열pos : 변환이 끝난 위치를 알려주는 포인터 (옵션)base : 진법 (2 ~ 36, 기본값 10)반환값변환된 int 값예외std::invalid_argument : 변환할 수 없는 경우 (숫자가 전혀 없음)std::out_of_range : 변환 결과가 int 범위를 넘어가는 경우 예시#include #include using namespace std;int main() { string s1 =.. 2025. 9. 30.
반응형