기타/C++: 40개의 글
[C++] string 문자열을 배열에 복사하기 string 은 c++에서 사용하는 문자열 클래스이다.c 로 개발된 인터페이스를 사용할 때, 문자열 배열과 혼용해서 사용해야 한다. 문자열 배열의 값을 string으로 복사할 수도 있고, string 을 문자열 배열로 복사할 수도 있다. 문자열 배열을 string으로 복사하는 거는 쉽다. 그냥 "=" 을 사용하면, string 으로 복사된다. 하지만 string을 문자열 배열에 복사할 때는 조금 복잡한 과정을 거친다. 아래는 그 예제이다.#include #include #include using namespace std; int main(){ string cppstyle = "My name is Hyeon"; char* cstyle = new char[cp..
[C++] 문자열 합치기 strcat(), 문자열 비교 strcmp() strcat(A, B) : A 문자열 뒤에 B 문자열을 결합한다.strcmp(A, B) : A 문자열과 B 문자열의 일치를 비교한다. 두 문자열이 일치하면 0을 반환한다. #include #include using namespace std; int main(){ char str1[20] = "abcde"; char str2[] = "fghij"; strcat_s(str1, str2); if (strcmp(str1, "abcdefghij") == 0) cout
[C++] 문자열 길이 strlen(), 문자열 복사 strcpy() strlen(A) : 문자열 배열 A의 길이를 구하는 함수 strcpy(A, B) : 문자열 B를 A에 복사한다. #include #include using namespace std; int main(){ char src[] = "Hyeon"; int len = strlen(src); char* dest = new char[len + 1]; strcpy(dest, src); cout
[C++] 문자열 뒤집기 예제 문자열 뒤집기 예제#include using namespace std; char* ReverseString(const char* src, int len){ char* reverse = new char[len + 1]; for (int i = 0; i
[C++] 동적 메모리 할당 예제 new delete 변수와 배열을 동적으로 할당하고 해제할 수 있다. 동적으로 할당한 변수는 반드시 해제해줘야 한다. 함수에서 선언된 변수는 함수가 종료되면서 같이 자동으로 해제되지만,동적으로 할당한 변수는 해제되지 않고 직접 해제해줘야 한다. new : 변수 동적 할당delete : 동적 할당 변수 해제 new[] : 배열 동적 할당delete[] : 동적 할당 배열 해제#include using namespace std; int main(){ // int 타입 동적 메모리 할당 int* p = new int; *p = 337; cout
[C++] 10진수를 2진수로 변환 예제 재귀 함수를 이용한 2진수 변환 예제#include using namespace std; // 2진수의 자리 수 하나를 구하는 재귀 함수 void Convert2Bin(int dec){ // 10진수가 0보다 작거나 같으면 종료한다. if (dec
[C++] 두 점 사이의 거리 구하기 pow(), sqrt() 두 점사이의 거리를 구해보자. 하나의 점은 구조체로 x, y 좌표를 초기화한다. 두 점 사이의 거리는 피타고라스의 정리를 사용하여 구할 수 있다. 거리 =이 계산을 하기 위해서는 제곱과 제곱근을 계산해야 한다. #include 를 사용하여, pow() 와 sqrt() 함수를 사용할 수 있다. pow(a,b) : a의 b승 sqrt(x) : x의 제곱근 따라서 아래와 같이 Distance 함수를 작성할 수 있다.#include #include using namespace std; struct Point{ int x, y; }; double Distance(const Point& p1, const Point& p2); int main(){ // ..
[C++] 포인터와 레퍼런스 인자(Parameter)의 비교 함수의 결과를 얻어오기 위한 방법으로 포인터 타입과 레퍼런스 타입의 파라미터를 사용한다. 두 가지를 상황에 맞게 사용하면 되지만, 레퍼런스가 사용하기 쉽고 안전하다. 포인터 타입의 파라미터(int* a)를 사용할 때, 가장 큰 위험은 NULL 값이 넘겨져 오는 경우이다. 반드시 NULL 값은 아니더라도 올바르지 않은 주소 값이 넘어왔을 때는 심각한 문제가 발생할 수 있다. 그래서 포인터 파라미터의 경우에는 올바른 주소가 넘어왔는지 반드시 확인해야 한다. bool checkParam(int a, int b, int* pa, int* pb){ if (NULL == pa || NULL == pb) return false; return true; } ..
[C++] 팩토리얼 구하기 예제 (1) for 문을 이용한 Factorial#include using namespace std; int Factorial(int n); int main(){ int result; result = Factorial(5); cout