언어

c++ 출력/변수/입력/연산자/조건문/반복문/배열/문자열

werty2 2026. 3. 1. 18:30

- 출력

  ∘ 출력 시 cout 함수 사용

  ∘ C++에서의 표준 함수들은 함수 앞에 std:: 를 붙여줘야 사용가능, 하지만 코드 상단에 using namespace std; 를      적어주면 매번 std:: 를 함수 앞에 적지 않아도 됨.

  ∘ cout 함수는 iostream 이라는 헤더를 코드 상단에 포함시켜야 사용가능 #include <iostream> (콘솔에서의 입출        력 기능을 정의한 객체가 있음)

 

  > 특수문자 출력

      해당 특수문자 앞에 \ 를 붙임 (\를 붙이면 특정 기능이 아닌 문자로 인식하게 됨)

 

  > 줄바꿈

  • cout << endl; 
  • cout << \n

둘 모두 한 줄을 띄우는 역할을 함.

 

  > string 자료형 이용하려면 string 헤더를 코드 상단에 포함시켜야 함. #include <string>

 

- 변수

  > 2개 이상의 변수를 선언할 때는 한 줄에 동시에 선언할 수 있음

     ex) int a = 5, b =9;

 

  > 변수에 담긴 값 서로 교환하기 - temp 라는 추가 임시 변수 사용)

temp = a;
a = b;
b = temp;

 

  > 변수 동시에 복사

     a = b = c 코드를 이용하면 변수 c에 담겨있는 값이 변수 a와 b에 동시에 복사됨

     오른쪽에서 차례대로 b에 c의 값 넣음 -> a에 b의 값 넣음 이 실행됨

 

- 입력

  > cin 이라는 함수 이용해 공백, 줄바꿈 단위로 입력 받을 수 있음

  > 출력과 동일하게 #include<iostream> 이라는 헤더 포함시켜야 사용가능

  > 입력시 문자의 구분을 공백, 줄바꿈이 아닌 특정 문자 (:, / 등)로 할 때, cin.get()을 이용해 중간 문자 무시 가능

     (정수를 입력받지는 않음, 오직 문자만 받음)

  > 여러 개의 수 선언과 초기화 동시에 하려면 콤마를 이용해야함

ex)

int a = 0, b = 0;  //두 변수 선언, 초기화 동시에

 

- 연산자

  > / (나눗셈) 연산시 연산이 이루어지는 항들이 모두 int형이라면, 그 결과 또한 int가 됨

     -> 실수로 계산된 결과를 얻으려면 하나의 항을 (double)을 이용해 실수형으로 바꿔주어야 함.

int a = 9, b = 4;

cout << (double)a / b << endl;
cout << (double)(a / b);

위의 코드에서 (double) a / b는 결과값이 double로 잘 계산이 되지만, (double) (a / b) 는 a / b가 int로 먼저 계산이 된 후, double로 형변환을 했기 때문에 결과값은 정수형태로 출력이 됨. (실수형의 소수점 뒤 자리가 모두 0이기 때문) 

 

- if 조건문

  > if문의 조건을 만족하면, if문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행

  > 만약 {} 블록을 사용하지 않는다면, if 조건 다음에 나오는 한 줄의 코드만 if 조건 만족시 실행

  > 삼항 연산자

//기존 코드
if (조건) {
    a = 1;
}
else {
    a = 2;
}

//삼항연산자 이용
a = 조건 ? 1 : 2;

- a가 조건을 만족하면 ? 뒤의 값을 취하고, 만족하지 않는다면 : 뒤의 값을 취함.

- 삼항연산자의 각 항은 하나로 묶여서 처리됨 (ex. 2 + 3 + 4 < 5 ? 10 : 20 과 같은 항에서 2 + 3 + 4는 한 묶음으로 처리되어 조건    에 거짓이 되므로 20을 반환함)

- 삼항 연산자는 항상 전체를 괄호로 감싸는 게 안전함

 

  > else if를 사용한 if문에서 else if는 가장 가까운 if하고만 쌍을 이룸

   (ex. if - if - else if 순이라면 else if는 두 번째 if 와만 쌍을 이룸)

  > 0이 아닌 값은 참, 0은 거짓으로 정의됨

  > && (and)는 || (or) 보다 연산자 우선순위가 높음

 

- for 반복문

  > for문의 조건을 만족하면, for문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행

  > 만약 {} 블록을 사용하지 않는다면, for 다음에 나오는 한 줄의 코드만 조건 만족시 실행

  > 증감식에서의 i++ (후위 증가연산자): 후위 연산자가 속한 코드 실행이 먼저 이루어지고 증가가 이루어짐.

                          ++i (전위 증가연산자): 전위 연산자가 속한 코드를 실행하기 전에 증가가 이루어짐.

 

- while 반복문

  > while문의 조건을 만족하면, while문의 중괄호 블록 {} 안에 존재하는 코드가 모두 실행

  > 만약 {} 블록을 사용하지 않는다면, while 다음에 나오는 한 줄의 코드만 조건 만족시 실행

  > do-while: 반복문을 조건과 상관 없이 무조건 한 번 실행

do {

   조건을 만족할 때만 수행되는 코드, 
   조건과 관계없이 무조건 한번은 실행됨

} while (조건);

 

  > 무한루프: while(true) 사용해 특정 조건 만족시 탈출 가능하도록 만듦

     = whlie(1), for(;;) 도 같은 역할을 함.

 

- 배열

  > 배열의 모든 원소를 0으로 초기화하고 싶을 때는 int arr[5] = {}; 와 같이 중괄호 안에 아무것도 안써주면 됨 

  > int arr[n]; 과 같은 선언은 n이 고정된 상수가 아닌 변수일 때는 할 수 없음, 따라서 n의 최댓값을 확인한 다음 모두       담을 수 있는 충분한 크기의 배열을 정확한 수로 선언해주어야 함.

 

- 문자열

  > 문자열의 길이 string 헤더의 length() 함수 이용해 구함 ( ex. 문자열.length() )

  > 공백이 포함된 문자열 입력(문자열 구문을 공백이 아닌 줄바꿈만으로만 함): getline(cin, 문자열 변수명) 함수 사용

  > length()로 공백이 포함된 문자열 길이 구하면 공백을 포함한 길이가 나옴

  > 문자열로 이루어진 배열 => 2차원배열로 각 문자열들을 구성하는 문자에도 접근 가능

  > 공백 표기: '\0', 줄바꿈 표기: '\n'

  > 문자열 붙이는 방법: ex. 문자열 변수 a와 b를 붙일 때)  a + b  or  a.append(b)

  > 원래 문자열의 부분 문자열을 반환하는 함수(string 헤더에 포함): 문자열.substr(시작 인덱스, 부분문자열 길이)

  > 원래 문자열에 부분 문자열의 포함 여부를 알려주는 함수(string 헤더에 포함): 문자열.find("부분문자열")

     > find 함수가 부분문자열 찾는데 성공 -> 부분문자열 첫 문자의 인덱스 반환(여러 개이면 가장 앞의 인덱스)

     > find 함수가 부분문자열 찾는데 실패 -> string::npos 라는 상수 반환

 

  > 특정 문자열의 모든 문자들을 소문자로 변경하는 함수(cctype 헤더에 포함): tolower(문자열) / 대문자로 변경하는 함수(cctype 헤더에 포함) : toupper(문자열)

  > 문자열 정수로 변환하는 함수(string 헤더에 포함): stoi(문자열)

  > 정수를 문자열로 변환하는 함수(string 헤더에 포함): to_string(문자열)

  > 문자열 끼리의 >, < 연산은 사전순으로 앞선 문자열에 대한 비교 (cf. 문자에서의 >, < 연산은 문자의 아스키 코드 값 비교)

'언어' 카테고리의 다른 글

C++ (함수, 배열, 정렬, 객체)  (0) 2026.03.25
c++ 기본 (출력 ~ 2차원 배열 개념)  (0) 2026.01.15