C_C++

(C언어) ltrim(), rtrim() 함수 구현: 문자열에서 앞쪽 뒤쪽 공백 제거

고니자니 2023. 11. 24. 08:23
반응형

문자열에서 앞쪽의 공백과 뒤쪽의 공백을 제거하는 C언어 코드입니다.

ltrim(): 앞쪽(왼쪽)의 공백 제거

rtrim(): 뒤쪽(오른쪽)의 공백 제거

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

void ltrim(char* str) {
    int start = 0;

    // 공백 제거 시작 위치 찾기
    while (isspace(str[start])) {
        start++;
    }

    // 문자열 복사하여 공백 제거
    for (int i = start; i <= strlen(str); i++) {
        str[i - start] = str[i];
    }
}

void rtrim(char* str) {
    int end = strlen(str) - 1;

    // 공백 제거 끝 위치 찾기
    while (end >= 0 && isspace(str[end])) {
        end--;
    }

    // 끝에 널 종료 문자 추가하여 문자열의 끝 표시
    str[end + 1] = '\0';
}

int main() {
    char myString[] = "   Hello, World!   ";
    char myString2[] = "   Hello, World!   ";

    printf("Before ltrim: \"%s\"\n", myString);
    ltrim(myString);
    printf("After ltrim: \"%s\"\n", myString);

    printf("Before rtrim: \"%s\"\n", myString2);
    rtrim(myString2);
    printf("After rtrim: \"%s\"\n", myString2);

    return 0;
}

(Output)

Before rtrim: "   Hello, World!   "
After rtrim: "   Hello, World!"

(C언어) ltrim(), rtrim() 함수 구현: 문자열에서 앞쪽 뒤쪽 공백 제거

 


 

참고:

아래 링크에는, 문자열에서 양쪽 공백을 제거하는 trim() 함수도 볼 수 있습니다.

https://gonyzany.tistory.com/643

 

(C언어) trim() 함수 구현: 문자열에서 양쪽 공백 제거하기

아래의 코드는 문자열에서 양쪽 공백을 제거하는 trim() 함수를 구현한 것입니다. C언어 코드 #include #include #include void trim(char* str) { int start = 0, end = strlen(str) - 1; // 공백 제거 시작 위치 찾기 while (i

gonyzany.tistory.com

 

반응형