C언어 문자열배열 포인터로 역순출력

2018. 10. 4. 21:08개발노트

배열과 포인터 선언 및 연결

char s1[256];
char *p;
p = s1;

 

문자열 입력

gets(s1);

 

문자열 역순 출력

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

위 코드에서 strlen(p)를 사용하여 문자열의 길이를 구한 후, i를 문자열의 마지막 인덱스에서 시작하여 i--를 통해 역순으로 출력합니다.

  • for 루프에서 strlen(p) - 1을 사용하는 이유는 문자열의 마지막 인덱스가 문자열 길이보다 1 작기 때문입니다. 예를 들어, 길이가 5인 문자열의 마지막 인덱스는 4입니다.
  • i > -1 조건은 인덱스가 0까지 포함되도록 하기 위함입니다.
  • printf("%c", p[i])를 통해 인덱스 i에 해당하는 문자를 출력합니다. 

전체 코드

#include <stdio.h>
#include <string.h>

int main() {
    char s1[256];
    char *p;

    p = s1;

    printf("문자열을 입력하세요: ");
    gets(s1);

    printf("역순 출력: ");
    for (int i = strlen(p) - 1; i > -1; i--) {
        printf("%c", p[i]);
    }

    return 0;
}