본문 바로가기

반응형

Programming

(46)
[C++] 자료형 변환(char* => int, int => char*, int => char, char => int) char* => int int => char* int => char char => int 로 변환하는 예제를 하나의 main문 안에 모두 정리한다. #include using namespace std; int main() { // int ==> char* int x = 1234; char buf[256]; sprintf_s(buf, "%d", x); // QT에서는 sprintf로 해도 된다. printf("%s\n", buf); // char* ==> int char buffer[256] = "456123"; int num = atoi(buffer); printf("%d\n", num); // char ==> int char ch = '9'; int i = ch - '0'; printf("%d\n", ..
[C/C++] 문자열 엔터까지 한번에 받기(공백 포함해서 받기) + 문자열 파싱 char getStr[128]; scanf("%[^\n]s",getStr); // get 1 line until get enter 위는 문자열을 엔터까지 한번에 받기 예제이다. 그리고 아래는 위 예제를 이용해서 문자열을 엔터까지 한번에 받고나서 문자열을 띄어쓰기 단위로 파싱한 예제이다. char getStr[128]; scanf("%[^\n]s",getStr); // get 1 line until get enter char *tmpPtr = strtok(getStr," "); // for parsing char *str[10]; // parsing and save commands int i = 0; while(tmpPtr != NULL) // parsing command and option { str[i..
[cmake 예제] cmake로 빌드하는법, 프로젝트 생성하는법 아래의 링크에서 참고하길 바란다. https://m.blog.naver.com/ekbae98/221321840751 CMake 란? 사용 예제 오픈소스를 이용해서 개발하다 보면, cmake를 만나게 된다. github의 오픈소스를 다운 받아서 cmake로 빌드... blog.naver.com
[char형 배열과 string] 문자배열과 문자열 의 차이 자료형 string 은 기본 자료형이 아니라 객체이다. char형 배열은 기본 자료형이다. string은 객체이기 때문에 c언어에 없다. c++부터 제공하는 클래스이다. 차이 string은 마지막에 \0을 담지 않는다. 즉, string은 문자열의 마지막을 null문자로 구분하는것이 아니다. char형 배열은 마지막에 \0을 담는다. 즉, char형 배열은 \0로 문자열의 마지막을 구분한다. string은 애초에 '\0'을 담지 못한다. 그러나 char형 배열은 '\0'을 사용자가 임의로 넣을 수 있다. 따라서 char c[] = "app\0le" 이라고 선언후 출력하면 app까지만 출력된다. 사용자가 임의로 넣은 \0을 보고서 문자열의 마지막이라고 판단하기 때문이다. string과 char[]를 구분해..
[char*, char[], const char* ] 문자열 상수, 문자열 변수 이해 char* s1 = "abc"; char s2[] = "abc"; 위의 s1,s2는 어떻게 다를까? 언뜻 보기에 다르지만 완전히 다르다. 결론적으로 말하자면 s1은 문자열 상수, s2는 문자열 변수이다. 컴파일 하면서 s1이 가리킬 "abc"는 정적영역에서 생성되고 정적영역에서의 "abc"의 시작주소를 s1에 넣는다. s2는 힙영역에 "abc"가 생성되고 그 시작주소를 s2에 넣는다. s2가 우리가 익히 알고있는 변수, 혹은 포인터 방식이다. s1은 정적영역에 생성되었기 때문에 s1의 값을 바꾸지 못한다. 즉, 상수가 된것이다. 그러나 s1이 가리키는 대상은 바꿀 수 있다. 왜냐?? 근본적으로 s1은 포인터이기 때문이다. 포인터라서 가리키는 대상은 바꿀 수 있지만, "abc"는 정적영역에 있기때문에 바꾸..
[C++ 소켓 스레드통신] 스레드클래스를 직접 만들고 소켓통신 구현하기 이 후 전체소스는 천천히 첨부하겠다.
[C#] 배운거 정리 C#공부하면서 알게된 기능들 object, var, dynamic 변수가 어느 자료형인지 명확히 정해지지 않을때 사용이 가능한 자료형이다. #region >> 주석 #endregion 명시적인/암시적인 형 변환 명시적인 형변환 : double dDate = (double)nData; 암시적인 형변환 : int nData = 125; double dData = nData/4; 이 때, 명시적인 형변환은 작은데이터형(int) 큰 데이터형(double)로의 변환이 자유자재로 다 가능하지만 암시적인 형 변환은 작은데이터 --> 큰 데이터 형으로만 가능하다. 큰데이터에서 암시적인 형 변환은 이용해 작은 데이터로 형 변환하면 컴파일 에러가 난다.
[C/C++] 배열과 벡터 속도차이 비교 테스트 백준문제를 풀다가 배열복사와 벡터복사의 속도차이가 궁금해져서 테스트를 해보았다. 각각 100 x 100 짜리 이차원 배열, 벡터를 만들어서 1000번씩 복사하는 작업을 수행하고 시간을 재서 속도차이를 비교해보았다. 다음과 같이 테스트소스를 구성하였다. // 배열복사와 벡터복사 속도차이 비교하는 중이었는데 벡터가 훨씬 느리다. #include #include #include using namespace std; #define N 100 int main() { // 100x100 arr int arrOrg[N][N] = { 0 }; clock_t start = clock(); int arr[N][N]; for (int k = 0; k < 1000; k++) { for (int i = 0; i < N; i++..

반응형