변수
변수
- 데이터를 저장하는 상자, 기억 장소의 이름
int i; //변수 i를 선언
i = 100; //변수 i에 100을 저장
int i = 100; //변수 i을 선언하고 100으로 초기화
int i { 100 }; //int i = 100;과 동일
string s { "hello" }; //string s = "hello";와 동일하다
변수와 상수
변수
- 데이터를 담는 상자
- 변할 수 있는 수
상수
- 값이 한번 정해지면 변경할 필요가 없는 데이터
- 상수표현 방법 (차이는 메모리 할당 여부)
1. 전처리기 문장을 사용 : #define PI 3.242592
2. const 키워드를 사용 : const double PI = 3.141592; (권장)
자료형
- 처리, 저장하고자 하는 자료의 형태를 나타냄
- 데이터 낭비를 막기 위해 용도 맞는 메모리를 할당하기 위해 자료형을 사용
논리형
- bool형의 변수는 참 또는 거짓만을 가질 수 있음
- 참과 거짓은 원래 정수가 아니지만, 정수가 와야할 위치라면 1 또는 0이 된다.
auto
- C#에서의 var과 같은 역할을 한다.
- 컴파일 타임에 자동으로 타입이 추론된다.
- 타입의 이름이 길 경우 타이핑을 줄여주는 효가가 있다.
auto a; // Compile Error
auto a = 1; // auto -> int
연산자
대입 연산자
a = b;
//a에 b를 대입하고 b을 반환
나머지 연산자
a & b;
// a를 b로 나눈 나머지를 반환
증감 연산자
int a = 1;
cout << ++a << endl; // 2가 출력
cout << a++ << endl; // 2가 출력
// 최종적으로 a는 3
int b = 1;
cout << --b << endl; // 0이 출력
cout << b-- << endl; // 0이 출력
// 최종적으로 b는 -1
비교 연산자
a == b; //a와 b가 같다
a != b; //a와 b와 같지 않다
a > b; //a가 b보다 크다
a < b; //b가 a보다 크다
a >= b; //a가 b보다 크거나 같다
a <= b; //b가 a보다 크거나 같다
논리 연산자
a && b; //a 또는 b가 둘이 같을때
a || b; //a 또는 b가 true값일때
삼항 연산자
int index = a == b ? 1 : 0;
// 이조건식이 참일때, 즉 a와 b가 같다면 index에는 1이 들어감.
// 하지만 이 조건식이 거짓이때는 0이 들어가게 된다.
sizeof
bool isTrue;
char[] array = new char[10];
cout << sizeof(int); // int의 byte수인 4를 반환
cout << sizeof(isTrue); // isTrue의 byte수인 1을 반환
cout << sizeof(array); // array의 배열값 10을 반환
범위 연산자
이름::식별자; // ::왼쪽으론 이름 공간이나 클래스 이름을 넣고,
// 오른쪽에는 식별자를 넣음
난수
- rand() :내부적으로 생성된 0 ~ 32767 사이의 값을 반환
- srand() : 난수 생성의 기준값(시드값)을 설정.
사용자가 srand함수를 호출하지 않으면 시드 값이 1로 설정됨
- time(NULL) : 1970년 1월 1일 자정 이후 지금까지 경과된 시간(초)를 반환.
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand((unsigned int)time(NULL));
int randomnum = rand() % 4;
cout << randomnum << endl; //0 ~ 3 사이의 랜덤 값을 출력
}
string 클래스사용하기
#include <string>
using namespace std;
void main()
{
string str; // string 객체를 생성
string str = "Hello Word!"); // string 객체를 생성하고 초기화
getline()
- 공백이 포함된 문자열을 입력 받을 수 있는 함수 (in string 라이브러리)
string str;
getline(cin, str); // 한 줄에있는 모든 입력물을 str에 저장 (곻백포함)
cin.getline (문자열을 저장할 공간, 최대크기)
- 공백이 포함된 문자열을 입력 받을 수 있는 함수 (in iostream 라이브러리)
char arr[30];
cin.getline(arr, 30); //30자 안에서 공백이 있는 문장 입력 받기 가능
cin.ignore(0
- 입력 버퍼를 비워주는 함수
- cin으로 입력 받을 경우, 버퍼에 '\n'이 남음
- cin다음 입력을 cin으로 받을 경우 전 버퍼에 있던 공백 및 개행 문자를 무시하기 때문에 버퍼를 비워줄 필요가 없음
- cin 다음 입력을 getline으로 받을 경우, 전 버퍼에 있던 공백 및 개행 문자를 포함해서 입력 받기 때문에 버퍼를 지워주는 작업이 필요
- getline 다음 입력을 getline으로 받을 경우, getline은 '\n'를 버퍼에 포함시키지 않기 때문에 버퍼를 비워줄 필요가 없다.
string 클래스 멤버 함수
문자열 지우기
1. 매개변수가 숫자일때
1) 매개변수가 1개일 때
erase(3); // 문자열 인덱스 3부터 끝까지 삭제
2) 매개변수가 2개일 때
earse(3, 5); //문자열 인덱스 3에서 5길이 만큼 삭제
2. 매개변수가 반복자 일때
1) 매개변수가 1개일 떄
erase(str.begin()); //반복자가 가리키는 지점만 삭제
2) 매개변수가 2개일 때
erase(str.begin(), str.end()-3); //첫번째 반복자에서 두번째 반복자까지 삭제
문자열 치환
1. replace
대상 문자열에서 지정한 위치부터 원하는 문자로 바꿔줌
문자열.replace(시작 위치, 길이, 치환 문자열);
string a = "DDD YYYYY KKK";
a.replace(10, 3, "KIM");
cout << a << endl; // DDD YYYYY KIM
a.replace(10, 3, "ZZANG");
cout << a << endl; // DDD YYYYY ZZANG
a.replace(10, 3, "");
cout << a << endl; // DDD YYYYY
2. regex_replace
대상 문자열에서 정규식으로 지정한 문자를 검색하여 문자열로 변환
#include <regex>
regex_replace(대상 문자열, regex(정규식), 치환 문자열)
string a = "안녕? 나는 수박을 좋아해";
a = regex_replace(a, regex("수박"), "박수");
cout << a << endl; //안녕? 나는 박수를 좋아해
'GGM > 자료구조' 카테고리의 다른 글
20230309 - 자료구조 - 제어구조, 함수 (0) | 2023.03.09 |
---|---|
20230302 - 자료구조 - 기초 사항 (0) | 2023.03.02 |
댓글