💻 개인공부 💻/C | C++ 23

[C++] strcmp 함수를 이용한 문자열 비교 예제

문제 무한루프{   비밀번호를 두 번 입력받는다.   입력한 두개의 비밀번호가 같으면 OK 메세지를 화면에 보여주고 루프를 빠져나온다(jump 문 사용).   입력한 두개의 비밀번호가 다르면 오류 메세지를 화면에 보여주고 다시 비밀번호를 입력 받는다.   세번까지 반복해도 비밀번호가 다르면 루프를 빠져나온다(jump 문 사용).} #include#includeusing namespace std;int main() { int i = 0; char password1[10]; char password2[10]; while (1) { cin >> password1 >> password2; if (strcmp(password1, password2) == 0) { cout

[C++] C++에서의 데이터타입, signed와 unsigned

데이터 타입 ▶ C++에서의 데이터타입은 아래 표와 같다.   ▶ 코딩을 이용하여 크기를 알아보자. 소스코드는 아래와 같다. #includeusing namespace std;int main() { unsigned short _short; int _int; long _long; char _char; float _float; double _double; long double _longDouble; bool _bool; cout      signed vs unsigned ▶ signed와 unsigned의 차이는 부호의 유무이다. signed는 부호를 표시하겠다, 즉 음수까지 포함한다는 의미이고, unsigned는 부호를 표시하지 않기 때문에 양수만을 포함한다. 그러나 unsigned는 음수를 표현못하는 대..

[C++] 함수와 참조 (feat. &, 별명)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션)함수의 인자 전달 방식 ▶ 프로그래밍에서 함수를 사용할 때 변수, 즉 인자는 거의 필수 불가결하게 사용이 된다. 인자, 혹은 이 매개변수는 어떤 식으로 불러와서 사용이 되는걸까? 2가지의 방법이 있는데 값에 의한 호출과 주소에 의한 호출로 나뉘어진다. 값에 의한 호출로 객체 전달 ▶ 순서는 다음과 같다. 1. 함수를 호출하는 쪽에서 객체를 전달한다. 2. 함수의 매개 변수 객체 생성, 매개 변수 객체의 생성자는 호출되지 않는다.3. 함수 종료, 매개 변수 객체의 소멸자를 호출한다. ▶ 값에 의한 호출 시, 매개 변수 객체의 생성자는 실..

[C++] string 클래스 (feat. copy, getline, substr, find, replace)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션)string 클래스▶ C++에서 변수를 선언할 때 'c'는 char형으로, "string"은 string형을 자료형을 선언하여 준다. 여기서 "string"과 같은 자료형이 string인 변수들은 string클래스의 객체이다. ▶ 그렇다면 string클래스란 과연 무엇인가?#includeusing namespace std;▶ string 클래스는 헤더 파일에 선언을 하여 사용한다. ▶ 다양한 문자열 연산을 실행하는 연산자와 멤버 함수를 포함한다.▶ 문자열, 스트링, 문자열 객체, string 객체 등으로 혼용이 된다.▶ 문자열을 생성..

[C++] 예외 처리 (Exception)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) 예외란 무엇인가? ▶ 프로그램을 실행 중, 오작동이나 결과에 영향을 미치는 예상치 못한 상황이 발생한다. 이런 사오항을 예외 발생이라고 하는데 이를 처리하는 코드를 예외 처리기라고 한다. ▶ 예를 들면 다음과 같은 상황이다. #include using namespace std; int getExp(int base, int exp) { int value = 1; for (int n = 0; n < exp; n++) { value = value * base; //거듭제곱. base를 exp번 곱한 값이 value } return valu..

[C++] 조작자를 이용한 구조체 객체들의 정보 출력 프로그램(feat. struct, setw(), switch)

1. 문제 2. 요구사항 1. Namecard의 구조체 작성(이름, 주소, 연락처) 2. 입력할 인원을 입력할 수 있어야 함 3. 입력한 인원들의 정보를 정렬해야 함 4. 이를 출력 5. 위의 요구사항들 + 종료를 실행할 수 있는 메뉴가 있어야 함 프로그램 설계도 소스 코드 #include//C++ #include//정렬을 위한 sort함수 헤더함수 #include//조작자 setw()을 사용하기 위한 헤더함수 using namespace std; struct namecard {//namecard객체 char name[30];//namecard의 이름 char address[30];//namecard의 주소 char tel[20];//namecard의 전화번호 }; int menu; //메뉴를 숫자로 할..

[C++] 제네릭 함수 (feat. template)

함수 중복의 약점과 제네릭 template //template: 템플릿을 선언하는 키워드 //class: 제네릭 타입을 선언하는 키워드 //T: 제네릭 타입 T 선언 void swap(T& a, T& b) { T tmp; tmp a; a = b; b = tmp; } ▶ 위의 소스 코드를 보자 template //template: 템플릿을 선언하는 키워드 //class: 제네릭 타입을 선언하는 키워드 //T: 제네릭 타입 T 선언 void swap(T& a, T& b) { T tmp; tmp a; a = b; b = tmp; } ▶ 둘다 동일한 코드에다가 동일한 이름이지만, 단순히 매개 변수만 달라(오버로딩) 중복하여 작성하였다. 이는 코드를 작성하는데 낭비가 될 수 있다. ▶ 이를 해결..

[C++] 상속(Inheritance) - 2 (feat. 가상 함수와 추상클래스)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) https://ehclub.co.kr/2135 https://private.tistory.com/25 오버라이딩 ▶ 상속관계에 있는 클래스를 작성하다 보면 다음과 같이 함수가 중복되는 경우를 볼 수 있다. #include using namespace std; class Base { public: void f() { cout

[C++] 상속(Inheritance) - 1 (feat. 개념, 상속 접근 지정자)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) https://lesslate.github.io/cpp/%EC%97%85-%EC%BA%90%EC%8A%A4%ED%8C%85-%EB%8B%A4%EC%9A%B4-%EC%BA%90%EC%8A%A4%ED%8C%85/ 상속(Inheritance)이란 무엇인가? ▶ 기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것 ▶ 기본 클래스는 상속해주는 클래스, 부모클래스라고도 부른다. 파생클래스는 상속받는 클래스이며 자식클래스라고도 부른다. ▶ 기본클래스에서 파생 클래스로 갈수록 클래스의 개념이 구체화된다. (과일->사과, 자동차->BMW) ▶ 상..