정처기 감자정처기 감자
C언어포인터

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

C언어 문자열 뒤집기 (포인터 활용)

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

요약

C언어에서 포인터 두 개를 활용해 문자열을 뒤집는 알고리즘을 알아봅니다. 정보처리기사 실기에 출제된 양 끝에서 가운데로 이동하며 swap하는 방식을 정리합니다.

문자열 뒤집기 핵심 정리

개념설명예시
두 포인터양 끝에서 시작하여 가운데로 이동p1 = str, p2 = str + len - 1
swap두 포인터가 가리키는 값을 교환t = *p1; *p1 = *p2; *p2 = t;
종료 조건두 포인터가 만나거나 교차할 때while(p1 < p2)

문자열 뒤집기란?

문자열 뒤집기 개념을 몰라도 문제는 풀 수 있습니다
실기 문제를 풀기 위해 문자열 뒤집기 알고리즘을 깊이 이해할 필요는 없습니다. 포인터, strlen 함수, 값 교환(swap) 개념만 알면 코드를 따라가며 풀 수 있습니다. 하지만 알고리즘을 알고 있으면 훨씬 빠르게 문제를 풀 수 있으니 참고하는 걸 추천합니다.

문자열 뒤집기(String Reverse) 는 문자열의 순서를 거꾸로 바꾸는 알고리즘입니다.

text
코드 하이라이팅 중…

C언어에서는 포인터 두 개를 사용해 양 끝에서 시작하여 가운데로 이동하며 값을 교환(swap)하는 방식이 자주 사용됩니다.

문자열 뒤집기 개념
p1은 앞에서, p2는 뒤에서 시작해서 서로 만날 때까지 값을 교환합니다.

strlen 함수

strlen()은 문자열의 길이를 반환하는 표준 라이브러리 함수입니다. 널 문자('\0')는 포함하지 않습니다.

사용하려면 #include <string.h>를 작성해야 합니다.

c
코드 하이라이팅 중…
문자열strlen 결과
"HELLO"5
"ABCDEFGH"8
"" (빈 문자열)0

알고리즘 구현

코드에서 *p1은 "p1이 가리키는 칸의 값"이라는 뜻입니다. 포인터가 아직 익숙하지 않다면 먼저 읽고 오는 것을 추천합니다.

c
코드 하이라이팅 중…

포인터 초기 위치

c
코드 하이라이팅 중…
변수가리키는 위치값
p1str + 0 (= &str[0])'A'
p2str + 7 (= &str[7])'H'
str + len - 1이 마지막 문자인 이유
문자열 길이가 8이면 인덱스는 0부터 7까지입니다. str + 8은 널 문자 위치이고, str + 7이 마지막 문자 위치입니다.

동작 과정

"ABCDEFGH"를 뒤집는 과정을 단계별로 살펴봅니다.

초기 상태

text
코드 하이라이팅 중…

1회차: A와 H 교환

c
코드 하이라이팅 중…
text
코드 하이라이팅 중…

2회차: B와 G 교환

c
코드 하이라이팅 중…
text
코드 하이라이팅 중…

3회차: C와 F 교환

c
코드 하이라이팅 중…
text
코드 하이라이팅 중…

4회차: D와 E 교환

c
코드 하이라이팅 중…
text
코드 하이라이팅 중…

p1 < p2 조건이 거짓이 되어 루프 종료.

문자열 뒤집기 결과
뒤집기가 완료되면 ABCDEFGH가 HGFEDCBA로 바뀝니다.

시험 문제 분석

24년 1회 문제에서는 뒤집은 후 홀수 인덱스 위치의 문자만 출력합니다.

c
코드 하이라이팅 중…
홀수 인덱스 = 인덱스 1, 3, 5, 7
'홀수 번째'가 아니라 '인덱스 값이 홀수인 위치'입니다. i가 1부터 시작해서 2씩 증가하므로 i = 1, 3, 5, 7 위치를 출력합니다.

뒤집은 후 str = "HGFEDCBA":

인덱스01234567
출력 여부OOOO
값HGFEDCBA

i = 1, 3, 5, 7일 때 출력하므로 결과는 GECA입니다.


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

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

관련 글

(41개)
제목태그업데이트시험
C언어 형변환 (Casting)
C언어코딩C언어
2026-05-15-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어코딩C언어
2026-05-06-
C언어 사용자 정의 함수 기초
C언어코딩C언어
2026-05-06-
C언어41개
제목태그업데이트시험
C언어 형변환 (Casting)
C언어코딩C언어
2026-05-15-
C언어 연결 리스트 뒤집기 (Reverse Linked List)
C언어코딩C언어
2026-05-06-
C언어 사용자 정의 함수 기초
C언어코딩C언어
2026-05-06-
C언어 sizeof 연산자
C언어코딩C언어
2026-05-06-
C언어 이진 트리 (Binary Tree)
C언어코딩C언어
2026-04-24-
C언어 중첩 구조체와 포인터 접근
C언어코딩C언어
2026-04-24-
C언어 함수 포인터 (Function Pointer)
C언어코딩C언어
2026-04-24-
배열 C언어 코딩 감자시험
감자시험C언어배열감자시험
2026-03-28응시
C언어 왕감자 정보처리기사 실기 모의 시험
C언어C언어
2026-03-27응시
제어문/반복문 C언어 코딩 감자시험
감자시험C언어제어문반복문
2026-03-28응시
연산자 C언어 코딩 감자시험
감자시험C언어연산자감자시험
2026-03-28응시
포인터 C언어 코딩 감자시험
감자시험C언어포인터감자시험
2026-03-28응시
문자열 C언어 코딩 감자시험
감자시험C언어문자열감자시험
2026-03-28응시
구조체 C언어 코딩 감자시험
감자시험C언어구조체감자시험
2026-03-28응시
C언어 구조체 배열
C언어코딩C언어
2026-03-21-
C언어 구조체 포인터
C언어코딩C언어
2026-04-24-
C언어 함수 프로토타입
C언어코딩C언어
2026-03-21-
C언어 입력 함수 - scanf, getchar, gets
C언어코딩C언어
2026-03-21-
C언어 출력 함수 - putchar, printf, puts
C언어코딩C언어
2026-09-29-
C언어 문자열 포인터 (char *)
C언어코딩C언어
2026-03-21-
C언어 포인터 산술 (Pointer Arithmetic)
C언어코딩C언어
2026-03-21-
C언어 재귀함수 (Recursion)
C언어코딩C언어
2026-03-21-
C언어 선택정렬 (Selection Sort)
C언어코딩C언어
2026-02-10-
C언어 스택 (Stack) - LIFO 자료구조
C언어코딩C언어
2026-03-21-
C언어 2차원 배열
C언어코딩C언어
2026-03-21-
C언어 원형 큐 (Circular Queue)
C언어코딩C언어
2026-03-21-
C언어 ctype.h 문자 판별 함수
C언어코딩C언어
2026-03-21-
C언어 자료형
C언어코딩C언어
2026-05-15-
C언어 이중 포인터 (Double Pointer)
C언어코딩C언어
2026-03-21-
C언어 동적 메모리 할당 (malloc, free)
C언어코딩C언어
2026-05-04-
C언어 헤더 파일과 #include
C언어코딩C언어
2026-03-21-
C언어 연결 리스트 (Linked List)
C언어코딩C언어
2026-05-06-
C언어 포인터 배열과 2차원 배열
C언어코딩C언어
2026-03-24-
C언어 포인터의 기초
C언어코딩C언어
2026-06-25-
C언어 큐 (Queue) - FIFO 자료구조
C언어코딩C언어
2026-03-21-
C언어 static 변수 - 값이 유지되는 변수
C언어코딩C언어
2026-03-21-
C언어 포인터를 이용한 문자열 복사
C언어코딩C언어
2026-07-09-
C언어 구조체
C언어코딩C언어
2026-03-20-
C언어 삼항 연산자
C언어코딩C언어
2026-03-21-
C언어 typedef - 자료형에 새 이름 붙이기
C언어코딩C언어
2026-03-21-
전설의 완전수 문제 - C언어
C언어코딩C언어
2025-09-12-
정처기 감자정처기 감자

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

실기 이론

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

시험 응시

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

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

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

감자 이용권

  • 이용권 구매

실기 이론

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

시험 응시

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

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 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