Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- N번째큰수
- backtracking #codetree #디버깅 #삼성코테
- 진법변환 #2to10 #10to2 #이진법 #십진법 #변환 #bitset #c++
- 백준 #다익스트라 #dijkstra #9370 #c++
- 레드아보
- c++ #입출력 #속도 #ios #sync_with_stdio #cin #cout #tie
- 최소 #공배수 #최대 #공약수 #유클리드 #호제법 #lcm #gcd #c++ #boj #3343 #백준 #장미
- 코딩
- C++
- 22869
- 줄어드는수
- 이분탐색 #dp #11053
- c++ #boj #
- 1174
- boj #백준
- hcpc
- 호반우 상인
- graph #최단경로
- 투포인터 #백준 #boj #20922 #22862
- 3D #Reconstruction #computer #vision #volume #metric #tsdf #kinect #fusion
- 백준
- BOJ
- 20117
- LIS #가장긴증가하는부분수열 #
- 쌤쌤쌤
- 3343
- 16202
- 사이클 없는 그래프
- 30870
- graph
Archives
- Today
- Total
hyunjin
int , string , char 형 변환 본문
728x90
char < - > string
char -> string
#include <string>
char ch[20] = "hello world";
string str1(ch);
string str2 = ch;
1. string 생성자 이용해 생성 할 때 인자로 넘겨서 생성
2. char 배열 이름을 사용해서 대입 연사자 이용해 대입
string - > char
//string -> char
string str = "HELLO WORLD";
cout<< str.c_str() << "\n";
char ch1[20];
strcpy(ch1, str.c_str()); // c_str로 string->char 후 strcpy로 char에 복사
str.c_str()
c_str() 함수 이용해 string을 char로 변환.
strcpy를 이용해 다른 char에 복사도 가능
string -> char* (동적 할당)
string str = "hello world";
char *ch2 = new char[ str.size() + 1 ];
copy(str.begin(),str.end(),ch2);
strcpy(ch2 , str.c_str()); // copy or strcpy 상관없음
ch2[ str.size() ] = '\0'; // null 마지막에 넣어주기
cout<< "str size " << str.size() <<endl;
cout<<ch2<< " size : "<< strlen(ch2)<<endl; //
const char*
이 경우 수정 불가
char*
수정 가능 위해선 동적할당 통한 메모리 복사
끝에 Null 종료 문자 넣어주기!
(단 사용 완료 후 메모리 해제해야함.)
vector
string str = "Hi there";
vector<char> vc(str.begin(), str.end());
vc.puch_back('\0');
char* c = &*vc.begin(); // OR char* c = &vc[0]
vector로 해도 됨.
char <-> string 전체 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
char ch[256] = "hello world";
string str = "HELLO WORLD";
// char -> string
string str1(ch); // 방법1
string str2 = ch; // 2
cout << str1 << "\n";
cout << str2<< "\n";
//string -> char
cout<< str.c_str() << "\n";
//c_str
char ch1[20];
strcpy(ch1, str.c_str()); // c_str로 string->char 후 strcpy로 char에 복사
//copy
char *ch2 = new char[ str.size() + 1 ];
copy(str.begin(),str.end(),ch2);
strcpy(ch2 , str.c_str());
ch2[ str.size() ] = '\0'; // null 마지막에 넣어주기
cout<< "str size " << str.size() <<endl;
cout<<ch2<< " size : "<< strlen(ch2)<<endl;//
return 0;
}
string <-> int
string -> int
#include <string>
string str_i = "123";
string str_d = "3.1415";
int i = stoi(str_i);
double f = stod(str_d);
printf("%d\n",i);
prtinf("%lf",str_d);
stoi (string - > int)
stof (string - > float)
stol (string - > long int)
stod (string - > double)
원형
int stoi(const string& str, size_t* idx = 0, int base = 10)
두 번째 인자 뭐 잘안쓸 것 같은데 숫자 아닌 부분의 인덱스 리턴으로 나와서 저장해주나봐. 자세한건 참고 페이지 보자.
base : 진수
기존 코드
//reverse https://blockdmask.tistory.com/363
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
int n,ans=0,tmp=1;
cin >>s >>n;
reverse(s.begin(),s.end());
for(char c : s){
ans = ans + tmp*( (c < 'A')? c-'0' : c-'A'+10);
tmp*=n;
}
cout<<ans;
return 0;
}
stoi 사용한 코드
//reverse https://blockdmask.tistory.com/363
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
int n;
cin >>s >>n;
cout<<stoi(s,0,n);
return 0;
}
훨씬 간단. n진법 변환 가능
int -> string
#include <string>
int num1 = 10;
float num2 = 22.1f;
string str1 = to_string(num1);
string str2 = to_string(num2);
c++ 숫자에서 string 타입으로 변환
char <-> int
char -> int
int atoi (const char* cStr);
double atof (const char* cStr);
long int atol (const char* cStr);
int num = 0;
char cStr[30] = "2019";
//문자열 타입으로 출력.
printf("char* = %s\n", cStr);
//char* -> int
num = atoi(cStr);
//숫자 타입으로 출력.
printf("int = %d\n", num);
int -> char
그냥 프린트 할 때 putchar나 printf %c 하거나 (char) 붙이거나 등등
string <-> char* <-> int
참고
int to string to_string 함수에 대해서
728x90
'개인 공부 > C++' 카테고리의 다른 글
[C++] <2. C++ 레퍼런스> 함수인자,상수,배열,리턴 레퍼런스 (0) | 2021.03.02 |
---|---|
[씹어먹는 C++]< 1- C++> namespace (0) | 2021.03.02 |
isalpha , isdigit , isalnum (0) | 2021.02.16 |
2진수 <-> 10진수 변환 코드, bitset (0) | 2020.09.04 |
출력 포맷 변경 iomanip (0) | 2020.09.01 |