C언어의 strcpy는 문자열을 복사하는 함수입니다. 버퍼 오버플로우, BOF에 주의해야 하는 함수 중 하나입니다. 사용법은 다음과 같습니다. char *strcpy(char *dest,const char *ori); ori는 복사할 문자열, dest는 붙여 넣을 곳을 의미합니다. 그러면, 위치 ori부터 시작해서 널 문자를 만날 때 까지, dest부터 차례대로 복사한다는 의미가 되겠습니다. 몇 가지 예제를 보면서 이해해 보도록 하겠습니다. 먼저, src에 "aba"라는 것이 저장되어 있습니다. dest에 "aba"를 복사하려면 어떻게 쓰면 좋을까요? 복사할 문자열의 시작 위치는 src입니다. 이것을 노란색으로 표시해 보겠습니다. 그리고 복사가 시작될 위치를 초록색으로 표시해 보겠습니다. dest입니다...
전체 글 검색 결과
mysql에서 테이블의 열을 추가하는 명령어를 알아봅시다. 이것은 alter 명령어로 할 수 있는데요. 개략적인 문법은 다음과 같습니다. alter table add 노랗게 칠한 것을 기준으로 개행을 주면 편합니다. 이제 예제를 보도록 하겠습니다. 어제 실습한, worker 테이블입니다. 이름과 연봉밖에 없습니다. 그런데 뭔가 부족한 거 같아요. 왜냐하면, 이름이 중복이 될 수 있기 때문이에요. 동명 이인이라고 하나요? 그래서, 저는 id라는 새로운 필드를 추가하고자 합니다. 테이블에 열을 추가하겠다는 겁니다. 그래서, 저는 id라는 필드를 추가하려고 이 명령어를 쳤어요. 그리고 이것은 int형으로 받고요. auto_increment로 받았습니다. 자동 증가입니다. 그런데 이걸 그대로 넣으면 아래와 같은..
오늘은 기수 정렬에 대해서 알아보도록 하겠습니다. 이것은 키 2개를 가지고 비교하는 정렬이 아닌데요. 이 특성은 저번에 배운, counting sort의 '2개의 키 값을 비교'하는 '비교 기반 정렬이 아니다' 라는 성질을 가지고 있습니다. 이들과, merge sort는 키 2개를 직접 비교하는 비교 기반 정렬이냐, 아니냐의 차이가 있어요. 아래 두 개의 글을 잘 보셔도 눈치를 채실 수 있을 듯 싶습니다. [관련글] 빈도를 저장하는 counting sort. 알아봅시다. 정렬된 두 배열을 합치는 합병 정렬 알아보아요. 그러면, 이것은 어떻게 동작할까요? 저는 1가지 용어만 정의하겠습니다. b진법으로 잡고 정렬한다. 버킷의 갯수가 b개이다. 우리는 양의 정수를 표현할 때, x진법으로 표현할 수 있습니다. ..
문자열에서, 패턴 일치를 검사할 때 무엇을 쓸 수 있을까요? 가장 쉽게 생각할 수 있는 것은 Like입니다. 이것도 예제를 천천히 보도록 합시다. 이 포스팅에 쓸 재료는 다음 테이블입니다. 제가 예전에 만들어 두었던 worker 테이블입니다. 여기에는 다음과 같은 데이터들이 들어가 있습니다. 여기서 worker_name이 대문자 A로 시작하는 패턴을 찾고 싶습니다. 어떻게 하면 좋을까요? 요렇게 쓰시면 됩니다. 이것은 A로 시작하는 패턴을 찾아라. 라는 말과 같습니다. 여기서 '%'라는 문자가 궁금하실 수 있는데요. 이것은 어떠한 패턴과도 일치한다는 소리입니다. 예를 들어, %가 하나 붙어 있으면, 아무것도 없는 빈 문자열과도 일치하고, 'p'라는 것과도 일치합니다. 그러면 'Asia'는 'A%'라는 패..
java String의 startsWith 메서드는, str이 prefix로 시작하는지를 검사하는 함수입니다. 2번째 인자에 offset을 넣을 수도 있는데요. 이는 str의 offset부터 끝까지는 부분 문자열 sub로 잡았을 때, sub가 prefix로 시작하는지를 검사합니다. 그러면, endsWith도 내부적으로는 startsWith를 쓰겠네요. 쓰는 방법은 아래와 같습니다. boolean startsWith(String prefix); boolean startsWith(String prefix, int offset); 보통 위에 것을 꽤 쓰는 편입니다. 그러면 이들이 어떻게 동작하는지 내부를 간단히 보아야 겠군요. 먼저 String 인자만 하나 넘겨주면 그림에서의 1433번째 줄에 들어갑니다. 그..
최근댓글