반응형
C++에서 string, char *, int 간의 변환에 대해서 알아보겠습니다.
(char* -> int 로 바꾸는 것을 보고싶다면, [바로가기])
(string -> int 로 바꾸는 것을 보고싶다면, [바로가기])
(int -> string 으로 바로 바꾸는 것을 보고싶다면 [바로가기])
(C++ string에 대한 총정리가 보고싶다면 [바로가기])
1) 함수 설명
int atoi (const char * str)
헤더파일(C) : <stdlib.h>
헤더파일(CPP) : <cstdlib>
설명 : C style의 문자열을 입력받아서 int (숫자) 타입으로 변환하여 리턴한다.
- std::string c_str()
반환형이 char * 이므로, 해당하는 string의 첫번재 문자의 주소값(포인터)를 반환합니다.
사용방법은 아래에 나와있습니다.
2) TEST
헤더파일 : <cstdlib>, <string>, <iostream>
이름공간 : using namespace std;f
{Test 1} char* --> string
C style의 char * 형을 C++ style의 string 으로 변환.
1 2 3 4 5 | char * cStr = "Cstring"; string cppStr = cStr; cout << "[test1] : char * --> string " << endl; cout << "==> cppStr : " << cppStr << endl << endl; | cs |
Test 1 : 결과
{Test 2} string --> char *
- C++의 string을 C style의 char * 형으로 변환.
1 2 3 4 5 6 | string cppStr = "CPPstring"; const char * cStr2 = cppStr.c_str(); cout << "[test2] : string --> char *" << endl; printf("==> printf > cStr2 : %s\n", cStr2); cout << "==> cout > cStr2 : " << cStr2 << endl << endl; | cs |
Test 2 : 결과
{Test 3} char * --> int
- C style의 char * 를 int 타입으로 변환.
1 2 3 4 5 | char * cStr = "20170711"; int num = atoi(cStr); printf("printf : %d\n", ++num); //증가 후 출력. cout <<"cout : "<< ++num << endl;//증가 후 출력 | cs |
Test 3 : 결과
{Test 4} string --> char * --> int (한번에 int로 변환)
- C++의 string을 int 타입으로 한번에 변환.
1 2 3 4 5 | string s = "2017"; int num = atoi(s.c_str()); printf("printf : %d\n", ++num); //증가 후 출력 cout << "cout : " << ++num << endl; //증가 후 출력. | cs |
Test 4 : 결과
**C++에서 string을 공부하다가, string 변환에 대해서 테스트 해보고 정리 해보았습니다.
**char * 는 C/C++ 둘다 존재 하므로 C style이라고 언급하였고,
**string 클래스는 C++에만 존재하므로 C++ style이라고 언급하였습니다.
- 문자열을 다룰때
C에서는 char * 형으로 다루고, C++에서는 string으로 다루기 때문에 C style, C++ style이라고 언급하였습니다.
만약 이러한 표현이 불편하시다면, 댓글로 남겨주시면 추후 수정하도록 하겠습니다.
반응형
'<개인공부> > [C++]' 카테고리의 다른 글
[C++] vector container 정리 및 사용법 (41) | 2017.07.20 |
---|---|
[C++] STL 이란. (0) | 2017.07.19 |
[C++] Pair 클래스 정리 및 예제 (vector, sort) (3) | 2017.07.18 |
[C++] 예외처리 (Exception Handling, try catch) (3) | 2017.07.14 |
[C++] template(템플릿)에 관하여 2 (클래스 템플릿, 템플릿 특수화) (0) | 2017.07.12 |
[C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿) (20) | 2017.07.11 |
[C++] string 클래스 정리 (0) | 2017.07.10 |
[C++] string 클래스 만들어보기. (0) | 2017.07.10 |