-
string을 sprintf, printf 형식으로 사용하기c++ 2013. 7. 4. 11:41728x90반응형
C++표준 string (basic_string)을 printf 형식으로 사용하는 편한 방법이 없을까? 인터넷 찾아보면 여러가지 방법들이 나오긴하는데, static 변수를 이용하여 편하고/간결하고/오버헤드 없이 구현해 보았다.
void strFormat(string &strResult, const char *pFormat, ... )
{
static char sprintf_buffer[8192];
va_list va = NULL;
va_start(va, pFormat);
vsprintf(sprintf_buffer, pFormat, va);
strResult = sprintf_buffer;
va_end(va);
}
void strReplace(string& subject, const string& search, const string& replace)
{
size_t pos = 0;
while((pos = subject.find(search, pos)) != string::npos) {
subject.replace(pos, search.length(), replace);
pos += replace.length();
}
}
덤으로, strReplace는, string.find 와 string.replace의 조합을 이용하여 find&replace하는 함수인데 메모리할당을 하지 않고 비교적 빠른속도로 처리한다.
'c++' 카테고리의 다른 글
The language server crashed. Restarting... (0) 2024.02.21 알람 시그널을 이용하여 의도하지 않은 무한루프 디버깅 (0) 2013.07.03 디버깅, call stack back trace (0) 2013.07.03