|
#include "stdafx.h"
#include <string>
#include <locale>
#include "StdStringHelper.h"
#pragma warning ( push, 4 )
// Courtesy of Tom Widmer (VC++ MVP)
std::string StringNarrow( const std::wstring& wide ) {
typedef std::ctype<wchar_t> CT;
std::string narrow;
narrow.resize( wide.length() );
CT const& ct = std::_USE(std::locale(), CT);
// Non-Portable
// ct.narrow( wide.begin(), wide.end(), '_', narrow.begin() );
// Portable
ct.narrow( &wide[0], &wide[0] + wide.size(), '_', &narrow[0] );
return narrow;
}
// Courtesy of Tom Widmer (VC++ MVP)
std::wstring StringWiden( const std::string& narrow ) {
typedef std::ctype<wchar_t> CT;
std::wstring wide;
wide.resize( narrow.length() );
CT const& ct = std::_USE(std::locale(), CT);
// Non Portable
// ct.widen( narrow.begin(), narrow.end(), wide.begin() );
// Portable
ct.widen(&narrow[0], &narrow[0] + narrow.size(), &wide[0]);
return wide;
}
// Wide Version
std::wstring StringUpper( const std::wstring& wide ) {
std::wstring upper;
upper.resize( wide.length() );
std::transform(wide.begin(), wide.end(), upper.begin(), toupper);
return upper;
}
// Narrow Version
std::string StringUpper( const std::string& narrow ) {
std::string upper;
upper.resize( narrow.length() );
std::transform(narrow.begin(), narrow.end(), upper.begin(), toupper);
return upper;
}
// Wide Version
std::wstring StringLower( const std::wstring& wide ) {
std::wstring lower;
lower.resize( wide.length() );
std::transform(wide.begin(), wide.end(), lower.begin(), tolower);
return lower;
}
// Narrow Version
std::string StringLower( const std::string& narrow ) {
std::string lower;
lower.resize( narrow.length() );
std::transform(narrow.begin(), narrow.end(), lower.begin(), tolower);
return lower;
}
#pragma warning ( pop )
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.