본문 바로가기
반응형

C++30

[씨앤씨뿔] isalpha 함수 : <locale> - 3 헤더 파일에 있는 함수 친구들을 하나씩 알아보는 중이다. 그 중 세 번째.. 두둥탁 C & C++ isalpha함수 int isalpha ( int c ); : 매개변수로 들어온 인자가 알파벳이라면 0이 아닌 수를 반환하고 알파벳이 아니라면 0을 반환한다 (아스키코드값을 통해 알파벳을 확인) >>매개변수 : C언어에서 아스키 코드에 해당하는 문자들은 숫자로 표현이 되고, 문자를 넣으면 자동으로 아스키 코드에 있는 숫자로 들어가기 때문에 int 타입이긴 하지만 'a', 'A', '1' 등을 집어 넣어도 된다. 즉, 'a' 와 같이 char 타입으로 집어 넣어도 자동으로 int 타입으로 형변환 되어서 들어가게 된다. 아스키 코드 표를 참고하면 'a'는 자동으로 숫자 97로 형변환되어 들어가게 된다. isal.. 2023. 4. 28.
[씨앤씨뿔] isdigit 함수 : <locale> - 2 헤더 파일에 있는 함수 친구들을 하나씩 알아보는 중이다. 그 중 두 번째.. 두둥탁 C & C++ isdigit함수 int isdigit ( int c ); 함수의 매개변수로 char형을 입력하게 되면, 입력을 한 char형이 숫자에 해당하는 ASCII 코드 값인지 아닌지 판별을 하게 된다. char를 입력받지만, 원형함수의 매개변수가 int 형인 이유는 입력한 문자가 ASCII 코드의 번호로 들어가기 때문이다. 숫자에 해당하는 ASCII 코드를 확인해 보면 아래와 같다. 0에서 9까지의 숫자에 해당하는 ASCII 값인지 아닌지를 판별하게 된다. 0~9 에 해당하는 ASCII 값이 입력으로 들어오면 0이 아닌 값(True), 숫자에 해당하지 않는 값이 들어오면 0(False)를 반환한다. 예시 #incl.. 2023. 4. 27.
[씨앤씨뿔] toupper & tolower함수 : <locale> -1 헤더 파일에 있는 함수 친구들을 하나씩 알아보는 중이다. 그 중 첫번째.. 두둥탁 C& C++ toupper & tolower 함수 헤더파일? C언어 : C++ : toupper ? int toupper(int c); >> 매개변수 : 문자를 인자로 받는다. 문자를 넣게되면 아스키 코드표에 기반한 10진 수로 변환되어 들어가며, 숫자가 들어가게 되어도 아스키 코드 표에 기반한 숫자로 인식한다. >> 반환형 : 소문자만 대문자로 변경해서 반환해주고 다른 모든 문자는 그대로 반환하는 함수다. tolower ? int tolower(int c); >> 매개변수 : 문자를 인자로 받는다. 문자를 넣게되면 아스키 코드표에 기반한 10진 수로 변환되어 들어가며, 숫자가 들어가게 되어도 아스키 코.. 2023. 4. 27.
[씨앤씨뿔]C++의 getline함수 C++에는 getline함수가 두 종류가 있다. 에 속한 cin.getline 함수와 에 속한 getline 함수 ✅ iostream의 cin.getline()함수 cin.getline(char str, streamsize n); cin.getline(char str, streamsize n, char dlim); C언어 스타일의 문자열을 입력 받을 때 사용 (char형 배열, 문자열의 끝이 널문자) 크기 n을 지정하면 (n-1)개의 문자를 읽어와 str 배열에 저장 (마지막은 널문자) 지정한 delimiter를 만나기 전까지 모든 문자를 읽어서 str 배열에 저장 (디폴트 구분자는 개행 문자) ✅ string의 getline()함수 getline(istream& is, string str); getli.. 2023. 4. 27.
[씨앤씨뿔]C++ / 객체 포인터 &배열 &동적 생성 - 2 배열 delete는 익숙해지지 않으면 실수를 계속할 수도 있으니, 배열 반환 시 delete 연산자의 주의사항을 한 번 더 적었다. int *p = new int [10]; delete p; //비정상 반환. delete[ ] p; 로 하여야함 int *q = new int; delete [ ] q; //비정상 반환.delete q;로 하여야함 ✅new를 이용한 객체의 동적 생성과 생성자 클래스 이름 *포인터 변수 = new 클래스명; // 기본생성자 호출 클래스 이름 *포인터 변수 = new 클래스명(생성자매개변수리스트); new는 클래스 크기의 메모리를 할당받아 객체를 생성하며, 이때 생성자를 호출한다. 앞의 첫 번째 형식의 경우 기본 생성자가 호출되며, 두 번째의 경우 매개변수를 가진 생성자가 호출.. 2023. 4. 26.
[씨앤씨뿔]C++/ 객체 포인터& 배열& 동적 생성 - 1 객체 포인터 객체에 대한 포인터 변수 선언 Circle *p; 현재 선언된 포인터 변수 p는 아무 객체도 가리키지 않는다 포인터 변수에 객체 주소 지정 p = &donut; 포인터 변수 선언 시 객체 주소로 초기화 Circle* p = &donut; 포인터를 이용한 객체 멤버 접근 객체 이름으로 멤버에 접근할 때는 다음과 같이 점(.) 연산자를 이용하지만, d = donut.getArea(); //객체 이름으로 멤버 함수 호출 객체 포인터로 멤버 접근할 때는 -> 연산자를 사용한다. 다음 코드는 p가 가리키는 객체의 getArea()함수를 호출한다. d = p->getArea(); //포인터로 객체 멤버 함수 호출 d = (*p).getArea(); //위 코드와 같은 의미 CheckTime Polygo.. 2023. 4. 24.
[씨앤씨뿔]C++/ 클래스 & 객체 - 2 ✅함수 호출에 따른 오버헤드 짧은 코드를 함수로 만들게 되면, 함수 호출의 오버헤드가 상대적으로 커서 프로그램 실행 시간이 길어지는 원인을 제공한다. 이러한 짧은 코드를 다루는 함수에 대하여 오버헤드를 줄일 방법이 있다면 이것이 프로그램의 실행 속도 개선에 타개책이 될 것이다. ✅인라인 함수 : 짧은 코드로 구성된 함수에 대해, 함수 호출 오버헤드로 인한 프로그램의 실행 속도 저하를 막기 위해 도입된 기능 인라인 함수는 함수 앞에 inline 함수의 코드를 그대로 삽입해 함수 호출이 빨리 출력되는 것을 방지 인라인 함수의 장단점 대부분의 객체 지향 언어에서 비교적 작은 함수를 만든다. C++ 역시 getter/setter라고 불리는 작은 멤버 함수들이 많이 존재하며, 이 멤버 함수를 호출하는 코드 역시 .. 2023. 4. 19.
반응형