strcpy, strncpy 문자열 복사 함수


C에서 문자열을 복사하는 함수가 있다.

바로 strcpy 와 ctrncpy이다.

두 함수의 차이는 복사할 문자열 길이 설정 여부 이다.

아래와 같이 자세히 알아보도록 하겠다.


strcpy 일반 문자열 복사


strcpy 사용법은 아래와 같다.

#include<string.h>

char * strcpy( char * dest, const char * src )

ex) 

char destStr[128] = {0,};

char * srcStr = "hello world";

strcpy( destStr, srcStr );


2번째 인자 값에 있는 문자열을 첫번째 인자 값에 복사를 한다.

이때 주의 할 것이 2번째 문자열의 길이가 1번째 문자열 공간보다 많다면 overflow가 발생한다.

예를 들어 설명해보겠다.

2번째 인자의 문자열 값이 "abcde" 이렇게 5byte라고 하자.

1번째 인자의 문자열 공간이 destStr[3] 이렇게 3byte 밖에 없다고 하자.

그럼 5바이트를 3바이트 공간인 destStr에 복사를 하면 

공간보다 복사할 문자열이 더 크기 때문에 destStr 배열변수에 메모리 overflow가 발생한다.

overflow가 발생하면 원하는 결과를만들어 낼 수 없으니 주의해서 복사 한다.


[예제]

#include <stdio.h>

#include <string.h>

#include <string.h> //<--- strcpy 함수 사용을 위해 추가 한다. 


int main(int argc, char *argv[]) 

{

char destStr[128] = {0,};

const char * srcStr = "hello world";

strcpy( destStr, srcStr ); //호출 전에 destStr 공간이 충분한지 확인 한다. 

printf( " destStr[%s] \n",destStr);

return 0;

}



 실행 결과

 destStr[hello world]

 계속하려면 아무 키나 누르십시오...




strncpy 지정 된 길이만큼 문자열 복사


strncpy 사용법은 아래와 같다.

#include<string.h>

char * strncpy( char * dest, const char * src, size_t n )

ex) 

char destStr[128] = {0,};

char * srcStr = "hello world";

strncpy( destStr, srcStr, sizeof(destStr)-1 );


strcpy와 다른 점은 3번째 인자에 복사할 길이를 넣는 것이다.

strcpy를 사용시 overflow 발생 할수 있는 문제 점에 대해 말했다.

이러한 문제를 예방해줄 함수가 strncpy이다.

마지막 인자에 첫번째 인자 메모리 공간만큼만 복사하게 설정하면 overflow가 일어날 일이 없다.

이글을 읽는 분들도 꼭 strncpy를 사용하는 것을 습관화 하기를 바란다.


[예제]

#include <stdio.h>

#include <string.h>

#include <string.h> //<--- strncpy 함수 사용을 위해 추가 한다. 


int main(int argc, char *argv[]) 

{

char destStr[128] = {0,};

const char * srcStr = "hello world";

strncpy( destStr, srcStr, sizeof(destStr)-1 ); //길이를 넣어주기 때문에 overflow 걱정이 사라진다. 

printf( " destStr[%s] \n",destStr);

return 0;

}



 실행 결과

 destStr[hello world]

 계속하려면 아무 키나 누르십시오...





반응형

시트에 있는 모든 한글 한자로 변환


한 시트에 한글->한자로 변환 해야할 내용이 많다면 일일히 마우스를 대고 수정하는 일이 쉽지 않을 것이다.

시트 단위로 한글을 찾아서 한문으로 바꾸는 방법을 알아보자.


시트 단위로 한글 -> 한자 변환 하기

 


1. 엑셀 상단 (빠른 실행 도구 모음 사용자 지정)을 클릭 -> 기타 명령 클릭




2. 빠른 실행 도구 모음 -> 모든 명령 -> 한글/한자 변환 -> 추가 -> 확인





3. 엑셀 상단 한글/한자 변환 클릭





4. 변환할 한자 선택 -> 변환 버튼 클릭





5. 다음 한글이 있는 셀로 이동하는 것을 확인




이상으로 시트에 있는 모든 한글 -> 한자 변환에 대해 알아봤습니다.




반응형

연속 숫자 입력


연속으로 숫자를 입력하는 방법에 대해 알아보겠다.

키보드로 입력 하는 번거로움을 줄이기 위해 마우스를 이용하면 쉽게 입력을 할 수 있다.


연속 숫자 입력

 


1. [A1]셀에 1을 입력 한다.



2. 셀의 오른쪽 아래 마우스를 갔다 대면 + 가 나온다. 

   이때 마우스 왼쪽 버튼을 누르고 마우스를 아래로 드래그 한다.



3. 같은 숫자만 반복 되면 아래 메뉴를 누른다.



4. '연속 데이터 채우기' 를 선택 한다.




반응형

입력할 내용을 목록에서 찾아 넣기 


엑셀에서 같은 내용을 해서 넣을 때가 있다.

이때 마다 복사 붙이기 혹은 다시 입력 하면 버거롭다.

이 번거로움을 해소하기 위해 이미 입력된 값을 찾아서 값는 넣는 방법을 알아 보겠다.


입력할 내용을 목록에 찾기 + 넣기

 

입력할 내용을 목록에서 찾는 방법은 아래와 같다.

ALT + ↓

아래와 같이 입력된 데이터가 있다.


A4 셀에 A1~A3까지 입력된 값중 하나를 넣고 싶다면 ALT + ↓ 한다.



위와 같이 선택 할 수 있는 목록이 나온다.


↓↑ 키를 눌러 입력할 데이터를 골라 Enter를 눌러 선택 한다.







반응형

+ Recent posts