본문 바로가기
C/[코드조선] C 핵심

[C] strrev()

by 묻공러 2024. 2. 10.

strrev()

인자로 전달받은 str 문자열의 순서를 뒤집어서 반환하는 함수이다

 

strrev() 구현

#include <stdio.h>

enum { LENGTH = 16 };

size_t my_strlen(const char* str);
char* my_strrev(char* str);

int main(void)
{
    char string[LENGTH] = "11-40-2202";
    printf("%s\n", string);
    my_strrev(string);
    printf("%s\n", string);

    return 0;
}

size_t my_strlen(const char* str)
{
    size_t i;

    for (i = 0; *str++ != '\0'; ++i) {}

    return i;
}

char* my_strrev(char* str)
{
    size_t len = my_strlen(str);
    char* p = str;
    char* q = str + (len - 1);
    char temp;
    if ('\0' == *str) { return str; }
    while (p <= q)
    {
        temp = *p;
        *p = *q;
        *q = temp;
        ++p;
        --q;
    }

    return str;
}

'C > [코드조선] C 핵심' 카테고리의 다른 글

[C] 메모리 구조  (1) 2024.02.11
[C] 문자열 정렬  (0) 2024.02.10
[C] strtolower(), strtoupper()  (0) 2024.02.10
[C] strcat(), strstr(), strtok()  (0) 2024.02.10
[C] strcpy()  (0) 2024.02.09