easy software

C언어 문자열을 역순으로 출력하기 본문

C언어/포인터와 배열

C언어 문자열을 역순으로 출력하기

JAVA 웹개발자 2015. 1. 14. 12:14

이번 시간에는 어렵다면 어렵고, 쉽다면 쉬운 문자열 역순 출력을 해보겠습니다.

 

이미 이전시간에 문자열과 배열의 기본적인 개념을 안내해 드렸기 때문에 쉽게 이해하 실 수 있도록 쉬운 예제로 준비했습니다.

 

문자열을 역순으로 출력하기 위해선 문자열의 길이를 알아야 합니다.

 

길이를 알아낸 후 길이를 2로 나눈만큼의 반복을 수행하여 문자열을 뒤집습니다.

 

문자열을 역순으로 출력할 때는 임시변수를 하나 선언해야 합니다.

 

아래 코드를 보시죠. 주석을 상세히 달아놔서 이해하기 아주 수월하실 겁니다.

 

정 이해가 어렵다면, 배열을 그려서 이해해보세요.

 

#include <stdio.h>

 

int main(void){

 

 char arr[100];
 char temp;
 int leng = 0;

 

 printf("문자열을 입력하세요 : ");
 scanf_s("%s", arr, 100);

 

     //문자열의 길이를 알아냄
     while (arr[leng] != '\0')
          leng++;

 

 //반복문은 문자열의 역순을 만들어내는 역할
 //leng/2를 하는 이유는 역순을 만들기위해 반복을 절반만 해야하기 때문
 for (int i = 0; i < leng/2; i++){
      temp = arr[i];
  //-1을 하는 이유는 문자열의 끝에 \0가 있기때문
  //그 \0를 무시하고 나머지 문자열들만 자리를 바꾸기 위함임
      arr[i] = arr[leng - i - 1];
      arr[leng - i - 1] = temp;
 }

 

 printf("변경된 문자 : %s\n", arr);

 

     return 0;


}

Comments