c_str() 함수는 string class의 멤버 함수이다. c언어에는 string을 '문자의 배열' 인 문자열로만 표현 가능하다. c++에만 존재하는 string 자료형을 c_str() 을 통해 c style의 문자열로 변환하는 함수가 c_str()이다. string CPP = "hello"; char C[6] = "hello"; 두 문자열 모두 cout에서 정상적으로 출력되어 hellohello 가 출력된다. cout
c++
1053. [풀이] c++에는 참 거짓을 나타낼 수 있는 자료형 bool 이 있다. 다른 자료형의 값을 bool()을 통해 ture or false 로 나타낼 수 있다. #include using namespace std; int main(void) { bool a; cin >> a; cout > a; cout > a >> b; int result = a & b; cout > a >> b; a > b ? cout > b; max(a,b); } 1064. [풀이] 세 가지 정수를 비교하는 삼항연산자는 더 복잡해 보이지만 원리는 같다. #include using namespace std; int main(){ int a, b, c; cin >> a >> b >> c; (a < b && a < c) ? cout
1031. [풀이] #include using namespace std; int main(){ int a; cin >> a; printf("%o", a); } 1032. [풀이] #include using namespace std; int main(){ int a; cin >> a; printf("%x", a); } 1034. [풀이] #include using namespace std; int main(){ int a; scanf("%o", &a); cout > a; cout > a; cout
1022. [풀이] 공백 포함하여 string 으로 읽어 싶다면 getline(cin, string name) 을 사용하면 된다. #include using namespace std; int main(void) { string str; getline(cin, str); cout a; int k = 10000; for (int i = 0; i > y >> dash >> m >> dash >> d; cout.width(2);co..
1012. [풀이] 소수점 7자리에서 반올림 해 6자리까지 나타내는 방법은 아래 두 가지 방법이 있다. #include using namespace std; int main() { float n; cin >> n; cout c >> b; cout m >> dot >> d; cout.width(4); cout.fill('0'); cout > rear; cout.width(6); cout.fill('0'); cout
코드업 c언어 100제에서 c++을 이용해 문제를 풀 것이다. 문제는 하루 푸는 양만큼 글로 나눠 포스팅할 예정이고 복습하려고 다시 봤을 때 도움이 될만한 문제만 풀려고 한다. 1003. [풀이] endl 보다는 '\n' 을 쓰는 것이 실행 속도 측면에서 더 좋다. 두 가지 개행문자의 차이는 C++ 카테고리에서 자세히 작성하려고 한다. endl 보다는 '\n' 을 사용하는 습관을 들이자. 코딩테스트는 실행시간 싸움이다. #include using namespace std; int main(void) { cout
C++ 표준 라이브러리는 비트 플래그 조작을 돕는 std::bitset을 제공한다. std::bitset을 사용하려면 필요한 비트 수를 나타내는 std::bitset 변수를 정의해야 한다. #include std::bitsetbits(0x3); std::bitset 변수 bits는 0000 0011 이 된다. std::bitset은 4가지 주요 함수를 제공하는데 1. test() : 비트 상태를 알려준다. 2. set() : 비트를 켠다. 3. reset() : 비트를 끈다. 4. flip() : 비트를 뒤집는다. 위 함수들을 활용한 코드가 다음과 같다. #include #include using namespace std; int main(){ bitsetbits(0x03)// 0000 0011 bits..
매직 넘버를 사용하는 것은 좋지 못한 습관이다. 매직 넘버란 아래 코드와 같이 한 반의 최대학생 수를 30으로 나타내는 것이다. int maxStudents = numClassrooms * 30; 매직넘버 대신 심볼릭 상수를 정의하는 것이 바람직한데 심볼릭 상수는 상수 리터럴 값이 지정된 이름이다. 그 방법은 두 가지 있다. 1. 매크로를 사용한다. (bad) #define MAX 30 매크로를 사용하면 전처리기가 MAX를 발견하면 30으로 대체한다. 여기에는 두 가지 문제가 있다. 첫 번째로, 매크로를 사용한 심볼릭 상수는 디버거에 표시되지 않는다. 두 번째로, #define 된 값은 항상 파일 스코프(범위)에 있으므로 나중에 #define된 값과 충돌할 수 있다. 2. const 변수를 사용한다. (..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcoqifz%2FbtsDAxSHD6N%2FG1MsKKKGkpHqB2IESMBSL1%2Fimg.png)
이스케이프 시퀀스는 \ (back slash)로 시작한 다음 문자 또는 숫자가 나온다. 대표적으로 사용하는 \n 또한 이스케이프 시퀀스다. 다양한 이스케이프 시퀀스들이 존재하는데 다음과 같다.
bool 변수에 true 혹은 false 값을 저장해도 cout 으로 출력할 때는 1 혹은 0 으로 출력한다. 따라서 아래 코드와 같이 boolalpha를 사용해 bool 값을 true/false 로 출력할 수 있다. noboolalpha를 사용해 다시 1/0으로 출력할 수도 있다. #include "iostream" #include using namespace std; int main(void) { bool b = true; cout