logo정처기 감자

Command Palette

Search for a command to run...

C언어 포인터를 이용한 문자열 복사

코딩C언어
C언어 포인터를 이용한 문자열 복사
읽는데 10분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-03-21
조회수: —
선수학습(1개)
  • C언어 문자열 포인터 (char *)

요약

C언어에서 포인터를 이용해 문자열을 복사하는 방법을 알아봅니다. strcpy 함수의 원리와 포인터 증가 연산을 이해하고, 정보처리기사 실기에 출제되는 문자열 복사 문제를 풀어봅니다.

문자열 복사 핵심 정리

개념설명예시
문자열 복사원본 문자열을 대상 배열에 복사strcpy(dest, src)
포인터 증가다음 문자 위치로 이동s++, d++
복사 종료 조건널 문자('\0')를 만나면 종료while(*s)
const char*가리키는 값을 수정할 수 없는 포인터const char *s

문자열 포인터를 먼저 학습하고 오시면 이 페이지를 더 쉽게 이해할 수 있습니다.


문자열 복사란? 쌩기초

문자열 복사는 원본 문자열의 내용을 다른 문자 배열에 그대로 옮기는 것입니다.

c
코드 하이라이팅 중...

표준 라이브러리의 strcpy 함수가 이 역할을 하지만, 시험에서는 포인터를 이용해 직접 구현한 복사 함수가 자주 출제됩니다.


포인터를 이용한 문자열 복사 함수 기초

기본 구조

c
코드 하이라이팅 중...

매개변수 설명

매개변수의미역할
char *d대상(destination) 포인터복사받을 배열의 시작 주소
const char *s원본(source) 포인터복사할 문자열의 시작 주소
const char *s는 원본을 보호합니다
const 키워드가 붙으면 s가 가리키는 문자를 수정할 수 없습니다. 원본 문자열이 실수로 변경되는 것을 방지합니다.
문자열 복사 개념
포인터 s는 원본(src)을, d는 대상(dest)을 가리킵니다. s와 d가 한 칸씩 이동하면서 문자를 복사합니다.

동작 과정 기초

예시 코드

c
코드 하이라이팅 중...

복사 전 상태

인덱스012345678910
str1'f''i''r''s''t''\0'
str2't''e''s''t''s''t''r''i''n''g''\0'

단계별 동작

text
코드 하이라이팅 중...

복사 후 상태

인덱스0123456...
str2'f''i''r''s''t''\0''r'...

복사 후 str2의 유효한 문자열은 "first"입니다. 인덱스 5에 널 문자가 삽입되어 이후의 문자들은 무시됩니다.

문자열 복사 과정
포인터 s와 d가 한 칸씩 이동하면서 문자를 복사합니다. 널 문자를 만나면 종료합니다.

while(*s)의 의미 기초

while(*s)는 "s가 가리키는 값이 0이 아닌 동안" 반복합니다.

  • 널 문자 '\0'의 ASCII 코드는 0입니다
  • *s가 '\0'이면 조건이 거짓(0)이 되어 루프가 종료됩니다
c
코드 하이라이팅 중...

이 패턴은 문자열 처리에서 매우 자주 사용됩니다. 문자열 길이 계산이나 문자열 뒤집기에서도 동일한 원리를 사용합니다.


문자열 복사 후 길이 계산 심화

복사된 문자열의 길이를 계산하는 패턴도 자주 출제됩니다.

c
코드 하이라이팅 중...
반복istr2[i]result
10'f'0 + 0 = 0
21'i'0 + 1 = 1
32'r'1 + 2 = 3
43's'3 + 3 = 6
54't'6 + 4 = 10
종료5'\0'-
인덱스 합계와 문자열 길이를 구분하세요
위 예시에서 result는 인덱스의 합(0+1+2+3+4=10)이지, 문자열 길이(5)가 아닙니다. 문제가 무엇을 요구하는지 정확히 파악하세요.

문자열 복사를 이해했다면 문자열 뒤집기도 시험에 자주 출제되니 함께 학습해보세요.


정보처리기사 실기 대비 문제

메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(41개)
제목태그업데이트시험
C언어 형변환 (Casting)
C언어코딩C언어
2026-05-15-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어코딩C언어
2026-05-06-
C언어 사용자 정의 함수 기초
C언어코딩C언어
2026-05-06-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999