본문 바로가기
프로그래밍/C++ / API

char* / char[] 공백문자 제거

by neive 2011. 11. 2.
728x90

tchar 와 char 간 문자열 인식 문제 때문에 필요하게 될 것이다~ 긴 말 필요 없고 소스로
더 간단한건 std::string 으로 바꾸고 맨 뒤를 erase 로 날려버려도 된다 ㅋ


#include  // isspace()
#include  // strcpy_s() strlen()

#define MAX_STR_LEN 4000

char*  trim(char *s); // 문자열 좌우 공백 모두 삭제 함수
char* ltrim(char *s); // 문자열 좌측 공백 제거 함수
char* rtrim(char* s); // 문자열 우측 공백 제거 함수


// 문자열 우측 공백문자 삭제 함수
char* rtrim(char* s) {
	char t[MAX_STR_LEN];
	char *end;

	// Visual C 2003 이하에서는
	// strcpy(t, s);
	// 이렇게 해야 함
	strcpy_s(t, s); // 이것은 Visual C 2005용
	end = t + strlen(t) - 1;
	while (end != t && isspace(*end))
		end--;
	*(end + 1) = '\0';
	s = t;

	return s;
}


// 문자열 좌측 공백문자 삭제 함수
char* ltrim(char *s) {
	char* begin;
	begin = s;

	while (*begin != '\0') {
		if (isspace(*begin))
			begin++;
		else {
			s = begin;
			break;
		}
	}

	return s;
}


// 문자열 앞뒤 공백 모두 삭제 함수
char* trim(char *s) {
	return rtrim(ltrim(s));
}
728x90

댓글