본문 바로가기
작업/Programming

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

 

 

문자열을 입력받고서 그 값의 역을 출력하는 코드입니다.

 

    char str[20];
    printf("한 단어를 입력하세요 = ");

    fgets(str, sizeof(str), stdin);

    for(int i =strlen(str)-2; i>-1; i--){
        printf("%c", str[i]);
    }

 

문자열은 문자들이 나열된 것이고, 배열로 접근이 가능하다는 것을 안다면 쉽게 적용 가능합니다.

문자열의 입력은 fgets() 함수를 사용했습니다.

 

 

 

fgets() 함수는 총 3개의 인자를 받습니다.

1. 입력받은 문자열을 저장할 공간

2. 해당 저장 공간의 버퍼 크기

3. 입력 방식 (stdin = 키보드)

 

 

입력받은 문자열을 인덱스 0부터 순차적으로 저장되며 마지막은 '\0'의 값을 저장합니다.

 

 

string.h 라이브러리에 포함된 문자열 관련 함수 strlen() 함수는 해당 문자열의 길이를 반환합니다.

strlen(str)은 문자열이 저장된 str의 문자 개수를 반환합니다.

 

 

중요한 것은 개수에 문자열의 마지막을 알리는 '\0'의 값도 포함된다는 것입니다.

따라서 "welcome"이 저장된 배열을 strlen() 적용하면 8의 값을 반환받습니다.

 

 

문자열이 저장된 공간을 인덱스를 통해 접근하였습니다.

그렇게 하면 문자 1개씩을 다룰 수 있게 됩니다.

 

 

인덱스를 의미하는 i를 저장된 문자의 인덱스 중에서 가장 큰 값으로 시작하게 합니다.

여기서 -2를 한 이유는 welcome의 경우 문자가 저장된 인덱스는 0~6입니다.

하지만 strlen()에 의해 8을 반환받기 때문에 2의 크기는 의미가 없게 됩니다.

 

-끝-