본문 바로가기
IT/C

[C언어] 포인터로 문자열 거꾸로 출력

by 고간디 2024. 3. 22.

[동아리] A반 5차 2일 과제 (2024.03.20)

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

void reverse1(char *a) {
    for (int i=0;i<=strlen(a)/2;i++) {
        char temp = *(a+i);
        *(a+i) = *(a+strlen(a)-i-1);
        *(a+strlen(a)-i-1) = temp;
    }
}

void reverse2 (char *a) {
    int len = 0;
    int i = 0;
    while (*(a+i) != '\0') {
        i++;
        len++;
    }
    
    for (int i=0;i<=len/2;i++) {
        char temp = *(a+i);
        *(a+i) = *(a+len-i-1);
        *(a+len-i-1) = temp;
    }
}

int main() {
    char a[100] = "helloworld!";
    reverse1(a);
    printf("%s", a);
    
    printf("\n");
    
    char b[100] = "helloworld!";
    reverse2(b);
    printf("%s", b);

    return 0;
}

 

포인터를 사용해 대괄호 사용하지 않고 문자열 거꾸로 출력하기

 

sting.h 헤더파일을 사용하여 문자열의 길이 확인 후 주소값 계산에 활용 -  reverse1()

반복문을 통해서 문자열의 길이를 먼저 확인 후 주소값 계산에 활용 - reverse2()

728x90
반응형

댓글