" /> C++ 2주차 함수 | BlackWerf's Blog
포스트

C++ 2주차 함수

함수

정의

특정 동작을 수행하는 코드 블록

사용 방법

1
반환타입 함수이름(함수파라미터);

Ex) void TestVoid(){ };


1
2
3
4
5
#include <iostream>
int main(){
 std::cout <<Hello C++;
 return 0;
}
  • Main 함수에서는 return 생략 가능함

전처리기

  • 프로그램이 컴파일 전에 규칙에 따라 코드를 미리 변환해주는 것

    ​ Ex) include => #include

    종류

    • #include
    • #define
    • #inline
    • #if
    • #ifdef
    • #ifndef

네임 스페이스

  • 이름 중복(충돌)을 해결하기 위한 하나의 해결 방법

  • 2003년, C++ 표준에 추가됨

  • 개발자 고유 공간 생성 및 구분이 가능함


std

  • C++의 표준 namespace
  • iostream 헤더파일 내부에 선언됨
  • 관련 함수로는 cout, cin, end 등이 존재함
  • using을 이용하여 std를 선언할 경우 생략가능

컴퓨터의 최소 정보

  • 비트 : 컴퓨터에서 정보 처리를 위한 최소 단위
  • 최적화된 비트 : CPU에서 한번에 처리 가능한 단위


변수

정의

  • 데이터를 유지하기 위한 공간

  • 위치 제한이 X, 함수의 상위 위치 권장

선언방법

  • 변수타입 변수이름;
  • 예시)
1
2
int a;
char b;


네이밍 규칙

  • 의도를 알아볼수 있는 이름을 사용하기
  • 중의적으로 해석이 가능한 이름의 사용을 피하기
    • ex) accountList
  • 숫자로 구분하지 않기
  • 첫 글자는 소문자를 사용하기
  • 클래스 이름은 명사(구) 사용하기
  • 메소드는 동사(구)를 사용하고 동사로 시작하기


변수 종류

구분자료형크기범위
-void--
문자형char1byte-128 ~ 127
 unsigned char 0 ~ 255
정수형bool 0~1
 short2byte-32,768 ~ 32,767
 unsigned short4byte0 ~ 65,535
 int -2,147,483,648 ~ 2,147,483,647
 unsigned int 0 ~ 4,294,967,295
 long -2,147,483,648 ~ 2,147,483,647
 unsigned long 0 ~ 4,294,967,295
 float 3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4 * 10^38)
 double8byte1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79 * 10^308)


문자열

  • 배열(문자열 X) :

    • 예시)
      • char data1[10] = { ‘a’, ‘b’, ‘c’, ‘d’, ‘e’};
  • CString

    • 예시)

      • char data2[10] = {‘a’,’b’,’c’,’d’,’e’, ‘\0’};

      • char data3[10] = “abcde”;


        data1abcde!@^#$
        data2abcde\0@^#$
        data3abcde\0\0\0\0\0

명령어

  • 예시)

    1
    2
    
    #include <string.h>
    int n = strlen("test")
    
    • strcmp()
      • 문자열을 비교하는 함수
      • 사용방법: strlen(string 값1, string 값2)
      • 결과:
        • 값이 0보다 클 경우 : string1이 string2보다 큼
        • 값이 0 : string1 = string2
        • 값이 0보다 작을 경우 : string1이 string2보다 작음
    • strlen()
      • 문자열의 길이를 반환하는 함수
      • 사용방법: strlen(string 값)
      • 결과: 매개변수로 삽입한 string값의 크기를 반환함
    • strcpy()
      • 문자열을 복사하는 함수
      • 사용방법: strcpy(string1, string2)
      • 결과: string2의 값을 string1에 복사함


입출력

입력

  • cin

출력

  • cout


예시 코드

1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;

int main(){
    cout << "글자를 입력하세요>>";
    char name[11]; //한글 - 5글자 | 영문 - 10문자
    cin >> name;
    
    cout << "출력된 문자 >> " << name << endl;
}

결과

1
2
글자를 입력하세요>>Arnold 
출력된 문자 >> Arnold


공백을 포함한 문자열 입력

  • cin.getline(char buf[], int size, char delimitChar)

  • buf에 size-1 크기의 문자를 입력

  • delimitChar를 만날 경우 입력이 중단됨
    • delimitChar와 buf 모두 끝에 ‘\0’붙임
  • delimitChar의 디폴트 값은 ‘\n’(Enter)


  • 예시 코드

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    #include <iostream>
    using namespace std;
        
    int main(){
        cout << "글자를 입력하세요>>";
        char name[20];
    	cin.getline(name, 100, '\n');
            
        cout << "출력된 문자 >> " << name << endl;
    }
    

    결과

    1
    2
    
    글자를 입력하세요>>Arnold      Michael   
    출력된 문자 >> Arnold      Michael  
    



String 클래스

  • Char와 다르게 문자열 크기 제한이 없음
  • 문자열 복사, 비교 등 다양한 함수와 연산자를 제공함
  • 객체 지향임
  • String 헤더를 include 필요

예시 코드

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
using namespace std;

int main(){
    string University("백석대학교");
    string Department("첨단IT 학부");
    string Major("AR/VR");
    
    cout << "현재 " << University << " " << Department << " " << Major << "전공으로 재학중입니다 " << endl;
} 

결과

1
현재 백석대학교 첨단IT 학부 AR/VR전공으로 재학중입니다
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.