atoi(), 문자열을 숫자로 반환하는 함수

int atoi(const char *string);

반환 타입이 int이고, 입력받는 매개변수가 const 타입인 char형 포인터이다. C++의 String 클래스의 경우, 내부에 char형 배열이 들어있다. 따라서 C++에서 해당 함수를 사용하기 위해서는 String이 아닌 char 형 포인터(char 형 배열)를 넘겨야 한다. 이 String 클래스 내부에 있는 char 형 배열을 반환하는 함수는 c_str() 이다. (const char* c_str())

etc-image-0

 

#include <bits/stdc++.h>
using namespace std;

int main(){
	
	string s = "11pppp";
	string s2 = "2";
	string s3 = "pppp";
    string s4 = "11ppp111p";
    
	cout << atoi(s.c_str()) << '\n';	
	cout << atoi(s2.c_str()) << '\n';	
	cout << atoi(s3.c_str()) << '\n';	
    cout << atoi(s4.c_str()) << '\n';
	
	return 0;
}

/// 실행결과
11
2
0
11

atoi는 (char -> int) 입력받은 문자열을 숫자로 바꾸는 함수이다. 따라서 숫자 문자열일 경우에 Int 형으로 바뀌는 것이다.

따라서 숫자가 아닌 문자로 이루어진 경우에는 0을 반환한다. 숫자가 있는 문자열일 경우, 해당 숫자를 그대로 Int형으로 바꾸어 반환한다. 만약, 문자열에 숫자와 문자가 섞여 있다면 숫자부분만 반환한다.

 

 

출처 :

https://codingdog.tistory.com/entry/c-string-cstr-%ED%95%A8%EC%88%98-string%EC%9D%84-char-%EB%A1%9C-%EB%B0%94%EA%BF%94%EB%B4%85%EC%8B%9C%EB%8B%A4

 

c++ string c_str 함수 : string을 char *로 바꿔봅시다.

string의 c_str 함수는 제가 string을 C style의 문자열로 바꿀 때 많이 썼던 함수입니다. 이 메서드는 const char *를 리턴합니다. 내용이 변경되면 안 되는 제약 조건을 가진, char형 포인터를 리턴합니다.

codingdog.tistory.com

https://blockdmask.tistory.com/331

 

[C언어/C++] atoi, atof, atol 함수 (char* to int)

안녕하세요. BlockDMask 입니다. 오늘은 C, C++에서 문자열을 숫자(정수, 실수)로 변환하는 함수들에 대해서 알아보겠습니다. (C/C++ 에서 string -> char* -> int 로 변경? [바로가기])(C++에서 int -> string 으로

blockdmask.tistory.com