C++/Reference

[C++] string 클래스 space 제거 (ltrim, rtrim, trim)

MoongStory 2024. 12. 8. 15:13
반응형
// 앞에 있는 화이트 스페이스 문자 제거
std::string& MOONG::StringTool::trim_left(std::string& input)
{
	if(input.length() == 0)
	{
		return input;
	}
	size_t index = 0;
	for(size_t i = 0; i < input.length(); i++)
	{
		if(input.at(i) != ' ' && input.at(i) != '\t' && input.at(i) != '\n' && input.at(i) != '\r\n')
		{
			index = i;
			break;
		}
	}
	input.erase(0, index);
	return input;
}
// 뒤에 있는 화이트 스페이스 문자 제거
std::string& MOONG::StringTool::trim_right(std::string& input)
{
	if(input.length() == 0)
	{
		return input;
	}
	size_t index = 0;
	for(size_t i = input.length() - 1; i >= 0; i--)
	{
		if(input.at(i) != ' ' && input.at(i) != '\t' && input.at(i) != '\n' && input.at(i) != '\r\n')
		{
			index = i + 1;
			break;
		}
	}
	input.erase(index);
	return input;
}
// 양쪽 끝의 화이트 스페이스 문자 제거
std::string& MOONG::StringTool::trim(std::string& input)
{
	return trim_left(trim_right(input));
}
// trim from start (copying)
std::string MOONG::StringTool::trim_left_keep_origin(std::string input)
{
	return MOONG::StringTool::trim_left(input);
}
// trim from end (copying)
std::string MOONG::StringTool::trim_right_keep_origin(std::string input)
{
	return MOONG::StringTool::trim_right(input);
}
// trim from both ends (copying)
std::string MOONG::StringTool::trim_keep_origin(std::string input)
{
	return MOONG::StringTool::trim(input);
}

 

https://github.com/MoongStory/StringTool

반응형

'C++ > Reference' 카테고리의 다른 글

[C++] dbgView 출력, OutputDebugString 함수 printf 함수처럼 사용  (0) 2024.12.09
Google C++ Style Guide  (0) 2024.12.08