전체 글 보기
-
일반적으로 c++의 경우에는 cin을 활용하여 문자를 받아들이게 되는데, 이 경우에는 scanf와 마찬가지로 공백을 기준으로 자른다. 즉, tab, 띄어쓰기, 엔터등이 올 때까지 문자를 받아들인 뒤 공백이 등장하면 공백 전까지를 저장시킨다. (앞의 글에서 언급한 것처럼 buffer에는 이들의 정보가 남아있다.) 따라서 일반적으로 띄어쓰기도 하나의 문자열의 정보로 받아들이기 위해서는 위의 방식처럼 활용할 수 없다는 것을 알 수 있다. 그래서 사용하게 되는 함수가 getline이다. c++에서는 일반적으로 string 자료형을 사용하기 때문에, 원래는 getline함수가 2가지이지만 string 자료형을 사용하는 케이스만을 다루도록 하겠다. 사용하는 방법은 getline(cin, 정보를 받을 string t..
[c++] 공백이 포함된 문자열의 입력 활용예제일반적으로 c++의 경우에는 cin을 활용하여 문자를 받아들이게 되는데, 이 경우에는 scanf와 마찬가지로 공백을 기준으로 자른다. 즉, tab, 띄어쓰기, 엔터등이 올 때까지 문자를 받아들인 뒤 공백이 등장하면 공백 전까지를 저장시킨다. (앞의 글에서 언급한 것처럼 buffer에는 이들의 정보가 남아있다.) 따라서 일반적으로 띄어쓰기도 하나의 문자열의 정보로 받아들이기 위해서는 위의 방식처럼 활용할 수 없다는 것을 알 수 있다. 그래서 사용하게 되는 함수가 getline이다. c++에서는 일반적으로 string 자료형을 사용하기 때문에, 원래는 getline함수가 2가지이지만 string 자료형을 사용하는 케이스만을 다루도록 하겠다. 사용하는 방법은 getline(cin, 정보를 받을 string t..
2020.08.28 -
c++에서는 문자열 관련된 라이브러리가 cstring 그리고 string 두 종류가 있다. null문자로 끝나는 char* 형식을 따르는 C언어 방식의 문자열 라이브러리(cstring)와 std::string을 따르는 라이브러리(string) 이렇게 두 개요! 문자열을 처리하는 방법이 두 가지가 되면서 그 방법에 따라 getline()함수도 두 종류가 존재하게 된겁니다. 즉 각 getline()함수는 문자열을 처리하는 방식이 달라요. istream 라이브러리에 속해있는 getline()함수는 뒤에 '/0'이 붙는 char* 형식 즉 클래직한 C언어 문자열을 따르는 입력 방법입니다. 반면에 string 라이브러리에 속해있는 getline()함수는 std::string 방식으로 동작해요 ㅎㅎ 그래서 인자를 ..
[c++] 공백이 포함된 문자열의 입력(getline 함수)c++에서는 문자열 관련된 라이브러리가 cstring 그리고 string 두 종류가 있다. null문자로 끝나는 char* 형식을 따르는 C언어 방식의 문자열 라이브러리(cstring)와 std::string을 따르는 라이브러리(string) 이렇게 두 개요! 문자열을 처리하는 방법이 두 가지가 되면서 그 방법에 따라 getline()함수도 두 종류가 존재하게 된겁니다. 즉 각 getline()함수는 문자열을 처리하는 방식이 달라요. istream 라이브러리에 속해있는 getline()함수는 뒤에 '/0'이 붙는 char* 형식 즉 클래직한 C언어 문자열을 따르는 입력 방법입니다. 반면에 string 라이브러리에 속해있는 getline()함수는 std::string 방식으로 동작해요 ㅎㅎ 그래서 인자를 ..
2020.08.28 -
c++에만 존재하는 String자료형의 경우 concat(이어붙이기)가 가능하다. python과 마찬가지로 string에 대해 덧셈을 하면 문자열을 자동적으로 이어서 연결해준다. 해당하는 내용을 이용하여 문제를 풀면 다음과 같다. #include #include #include using namespace std; int main(void){ int how_many_repeat; cin >> how_many_repeat; string string_store[how_many_repeat]; for(int i = 0; i > repeat_value >> input_string; int ..
[c++] String 자료형은 덧셈(Concat)이 가능하다.c++에만 존재하는 String자료형의 경우 concat(이어붙이기)가 가능하다. python과 마찬가지로 string에 대해 덧셈을 하면 문자열을 자동적으로 이어서 연결해준다. 해당하는 내용을 이용하여 문제를 풀면 다음과 같다. #include #include #include using namespace std; int main(void){ int how_many_repeat; cin >> how_many_repeat; string string_store[how_many_repeat]; for(int i = 0; i > repeat_value >> input_string; int ..
2020.08.27 -
일반적으로 배열을 초기화 할 때, 일부만 채워넣은 경우에는 나머지는 0으로 초기화 된다. 다만, 문제 상황에 따라서 초기값이 0이 아니라 다른 숫자가 나와야 하는 경우에는 fill함수나 fill_n 함수를 이용하주면 된다. 이용방법은 다음과 같다. 1. fill_n의 이용 fill_n(변경하려는 원소의 범위 시작주소, 변경하려는 원소 갯수, 변경 값) 2. fill의 이용 fill(변경하려는 원소의 범위 시작주소, 변경하려는 원소의 범위 종료주소, 변경 값) 다만, 종료주소는 변경값에 포함되지 않는다. 일종의 다른 배열에서 그러는 것처럼 열린구간으로 취급해주면 된다. 위의 내용을 이용하여 해결해야하는 문제는 다음과 같다. #include #include #include using namespace std..
[c++] 배열의 초기화 방법(fill / fill_n)일반적으로 배열을 초기화 할 때, 일부만 채워넣은 경우에는 나머지는 0으로 초기화 된다. 다만, 문제 상황에 따라서 초기값이 0이 아니라 다른 숫자가 나와야 하는 경우에는 fill함수나 fill_n 함수를 이용하주면 된다. 이용방법은 다음과 같다. 1. fill_n의 이용 fill_n(변경하려는 원소의 범위 시작주소, 변경하려는 원소 갯수, 변경 값) 2. fill의 이용 fill(변경하려는 원소의 범위 시작주소, 변경하려는 원소의 범위 종료주소, 변경 값) 다만, 종료주소는 변경값에 포함되지 않는다. 일종의 다른 배열에서 그러는 것처럼 열린구간으로 취급해주면 된다. 위의 내용을 이용하여 해결해야하는 문제는 다음과 같다. #include #include #include using namespace std..
2020.08.24 -
#include #include #include using namespace std; int main(void){ // test case num calculate int test_case_num; cin >> test_case_num; // Percent store double percent_save[test_case_num]; // Calculate each line for(int i = 0; i > check_case_num; // how many number in the line int check_sum = 0; int check_save[1000] = {0};// value save for (int j = 0; ..
[백준 4344번] [동적 계획법] 평균은 넘겠지#include #include #include using namespace std; int main(void){ // test case num calculate int test_case_num; cin >> test_case_num; // Percent store double percent_save[test_case_num]; // Calculate each line for(int i = 0; i > check_case_num; // how many number in the line int check_sum = 0; int check_save[1000] = {0};// value save for (int j = 0; ..
2020.08.19 -
c++의 경우는 문자열을 저장하는 방식이 여러가지가 존재한다. (아래에 설명하는 내용을 쓰기 위해서 #include 을 헤더쪽에 적고 시작하도록 하자.) 1. String 자료형으로 처리 이 방법은 Python에서 사용한 여러가지 방법들을 활용하여 계산할 수 있는 장점이 있다. append, pop등등을 활용할 수 있고 concat도 가능하다. 2. 배열로 처리 이 방법또한 매우 좋은 방법충에 하나이다. #include using namespace std; int main(void){ char test[100]; cin >> test; cout > test; cout > N; int result[N]; for(int i = 0; i > test..
[c++] 문자열 저장방법의 차이 비교 (String / 배열)c++의 경우는 문자열을 저장하는 방식이 여러가지가 존재한다. (아래에 설명하는 내용을 쓰기 위해서 #include 을 헤더쪽에 적고 시작하도록 하자.) 1. String 자료형으로 처리 이 방법은 Python에서 사용한 여러가지 방법들을 활용하여 계산할 수 있는 장점이 있다. append, pop등등을 활용할 수 있고 concat도 가능하다. 2. 배열로 처리 이 방법또한 매우 좋은 방법충에 하나이다. #include using namespace std; int main(void){ char test[100]; cin >> test; cout > test; cout > N; int result[N]; for(int i = 0; i > test..
2020.08.19 -
c++에서는 c와는 다르게 string자료형을 사용할 수 있다. c에서는 char 자료형을 사용하여 배열에 이를 저장하는 방식으로 문자열을 처리하였는데, c++에서는 그럴 필요 없이 바로 string 자료형을 이용하면 된다. String을 int형으로 전환하기 위해서는 stoi (String to int로 외우면 쉽다.)를 이용해야하는데 이를 위해서는 헤더파일에서 #include 을 해주어야 한다. (string.h가 아님에 매우 주의해야 한다.) 기본적인 위 함수의 parameter는 다음과 같다. int stoi (const string& str , size_t* idx = 0, int base = 10) 이 함수의 전체적인 사용방법은 다음과 같다. 예를 들어 string example = "3314..
[c++] 문자열(String)을 숫자로 변환 및 숫자를 문자열로 변환c++에서는 c와는 다르게 string자료형을 사용할 수 있다. c에서는 char 자료형을 사용하여 배열에 이를 저장하는 방식으로 문자열을 처리하였는데, c++에서는 그럴 필요 없이 바로 string 자료형을 이용하면 된다. String을 int형으로 전환하기 위해서는 stoi (String to int로 외우면 쉽다.)를 이용해야하는데 이를 위해서는 헤더파일에서 #include 을 해주어야 한다. (string.h가 아님에 매우 주의해야 한다.) 기본적인 위 함수의 parameter는 다음과 같다. int stoi (const string& str , size_t* idx = 0, int base = 10) 이 함수의 전체적인 사용방법은 다음과 같다. 예를 들어 string example = "3314..
2020.08.18 -
일반적으로 c++에서는 초기화한 크기가 배열의 크기보다 더 작은 경우에는 나머지는 모두 0으로 초기화 된다. 하지만, 0이 아닌 다른 수로 초기화 하고 싶을 때는 다음과 같은 방법을 이용해주면 된다. (단, 아래의 방식은 반드시 using namespace std;를 선언해주고 이용해야 한다. 그렇지 않다면 아래에 나오는 내용을 사용하려면 앞에 꼭 namespace인 std::를 꼭 붙어야 한다.) 1. fill_n 함수를 이용한다. 이 방식은 배열을 선언한 이후에 함수를 호출하여 원하는 배열의 Index에 숫자를 집어넣어주는 것이다. 사용 방법은 다음과 같다. fill_n(원하는 배열 시작 주소, 변경을 원하는 배열 Index 갯수, 변경하기를 원하는 숫자) 시작 주소라는 표현이 낯설수는 있으나, c의..
[c++] 배열의 초기화일반적으로 c++에서는 초기화한 크기가 배열의 크기보다 더 작은 경우에는 나머지는 모두 0으로 초기화 된다. 하지만, 0이 아닌 다른 수로 초기화 하고 싶을 때는 다음과 같은 방법을 이용해주면 된다. (단, 아래의 방식은 반드시 using namespace std;를 선언해주고 이용해야 한다. 그렇지 않다면 아래에 나오는 내용을 사용하려면 앞에 꼭 namespace인 std::를 꼭 붙어야 한다.) 1. fill_n 함수를 이용한다. 이 방식은 배열을 선언한 이후에 함수를 호출하여 원하는 배열의 Index에 숫자를 집어넣어주는 것이다. 사용 방법은 다음과 같다. fill_n(원하는 배열 시작 주소, 변경을 원하는 배열 Index 갯수, 변경하기를 원하는 숫자) 시작 주소라는 표현이 낯설수는 있으나, c의..
2020.08.18