생선이의 잡다한 블로그

C언어 강좌 26 - 값을 넣어보자! strcpy string.h 본문

프로그래밍/C언어 강좌

C언어 강좌 26 - 값을 넣어보자! strcpy string.h

생선스프 2017. 12. 8. 20:30
반응형

안녕하세요 생선스프입니다!


이번 강좌에서는 string.h 파일에 포함된 함수인 strcpy 함수를 사용하여 문자열을 복사해 보려고 합니다.


그냥 대입연산자로 하면 된다고 생각할 수도 있습니다.

아래와 같이 말이죠


1
2
3
4
5
6
void main()
{
    char s1[10];
 
    s1 = "가나다라";
}
cs


하지만 이렇게 하면 오류가 발생합니다


왜냐하면 s1에는 문자열의 시작주소가 저장되어있기 때문이죠


그래서 strcpy 함수를 이용합니다


아래와 같이 strcpy(문자열의시작주소값, 입력할문자열) 이렇게 사용하면 됩니다


1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <string.h>
 
void main()
{
    char s1[20];
 
    strcpy(s1, "안녕, 세상아!");
 
    printf("%s", s1);
}
cs


그런데 strcpy 함수는 입력할 문자열이 변수의 크기보다 크면 버퍼오버플로우가 발생하기 때문에 strcpy_s 를 사용해야합니다

아래와 같이 말이죠


1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <string.h>
void main()
{
    char s1[20];
 
    strcpy_s(s1, sizeof(s1), "안녕, 세상아!");
 
    printf("%s", s1);
}
cs

이번 강좌는 여기서 마치도록 하겠습니다

강좌 읽어주셔서 감사합니다 :D

공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments