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 | - | - |
| 문자형 | char | 1byte | -128 ~ 127 |
| unsigned char | 0 ~ 255 | ||
| 정수형 | bool | 0~1 | |
| short | 2byte | -32,768 ~ 32,767 | |
| unsigned short | 4byte | 0 ~ 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) | ||
| double | 8byte | 1.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”;
data1 a b c d e ! @ ^ # $ data2 a b c d e \0 @ ^ # $ data3 a b c d e \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에 복사함
- strcmp()
입출력
입력
- 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 라이센스를 따릅니다.