티스토리 뷰

Programming/C++

[C/C++] 문자열을 정수로 변환하기 : atoi

감성적인 개발자 2021. 8. 14. 23:58

■ 헤더파일

#include<stdlib.h>

 

■ atoi 함수 원형

int atoi(const char* string);

 

▶예제

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){
	int sum = 0;
	char s[] = "300";
	char s1[] = "+300";
	char s2[] = "-300";
	
	
	sum += atoi(s);
	cout << s << " converted to " << atoi(s) << endl;
	cout << "sum : " << sum << '\n';
	
	sum += atoi(s1);
	cout << s1 << " converted to " << atoi(s1) << endl;
	cout << "sum : " << sum << '\n';
	
	sum += atoi(s2);
	cout << s2 << " converted to " << atoi(s2) << endl;
	cout << "sum : " << sum << '\n';
}

문자형식인 s, s1, s2를 atoi를 통해 정수로 변환한 후 연산한다.

 

▶실행

 

 

▶예제

int main(){
	int sum = 0;
	char s[] = "0300";
	char s1[] = "number-300";
	char s2[] = "300number";
	
	
	sum += atoi(s);
	cout << s << " converted to " << atoi(s) << endl;
	cout << "sum : " << sum << '\n';
	
	sum += atoi(s1);
	cout << s1 << " converted to " << atoi(s1) << endl;
	cout << "sum : " << sum << '\n';
	
	sum += atoi(s2);
	cout << s2 << " converted to " << atoi(s2) << endl;
	cout << "sum : " << sum << '\n';
}

왼쪽에 0이 있는 경우, 문자 + 부호 + 숫자, 숫자 + 문자인 경우 변환한 결과이다.

atoi로 변환이 안될 경우 0을 리턴한다.

 

▶실행

 

※ 정리

문자열 atoi() 결과
"300" 300
"0300" 300
"+300" 300
"-300" -300
"number-300"
"number+300"
0
"300number"
"300number400"
300

 

 

숫자 : 정상적으로 변환

부호 + 숫자 : 정상적으로 변환

문자 : 모두 버려진다. ( 0 )

문자 + 숫자 : 모두 버려진다 ( 0 )

숫자 + 문자 : 문자가 나오기 전 앞부분 숫자만 변환

숫자 + 문자 + 숫자 : 뒤에 나온 숫자도 같이 버려진다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함