(l/r)trim | C++ Coding

Andreas Hamm
staatlich geprüfter technischer Assistent für Informatik
Startseite Ι C++ Coding

trim

Entfernt Leerraum (Leerzeichen) links und rechts von Text.


C++
template<class _Elem, class _Traits, class _Ax>
void trim(typename std::basic_string<_Elem, _Traits, _Ax>& _Str);



#if defined(_UDOPT_INVK_C_IMPL)
void trim(char* _Str);
void trim(wchar_t* _Str);

#else
template<class _Elem>
void trim(_Elem* _Str);


#endif

C
void _cstrim(char* _Str);
void _wcstrim(wchar_t* _Str);

C++ Quellcode

trimstr.hpp
Quellcode Auszug…
#pragma once

#include <string>

// Forward declarations ...
template<class _Elem, class _Traits, class _Ax>
void ltrim(typename std::basic_string<_Elem, _Traits, _Ax>& _Str);

template<class _Elem, class _Traits, class _Ax>
void rtrim(typename std::basic_string<_Elem, _Traits, _Ax>& _Str);


template<class _Elem, class _Traits, class _Ax>
_inline
void trim(typename std::basic_string<_Elem, _Traits, _Ax>& _Str);

{
rtrim<_Elem, _Traits, _Ax>(_Str);
ltrim<_Elem, _Traits, _Ax>(_Str);
}


#if defined(_UDOPT_INVK_C_IMPL)
#include "xstrim.inl"

__inline void trim(char* _Str)
{
::_cstrim(_Str);
}


__inline void trim(wchar_t* _Str)
{
::_wcstrim(_Str);
}

#else
// Extra forward declarations ...
template<class _Elem> void ltrim(_Elem* _Str);
template<class _Elem> void rtrim(_Elem* _Str);


// Following code lines are only intend for performance
//comparison ...

template<class _Elem>
_inline
void trim(_Elem* _Str)
{
rtrim<_Elem>(_Str);
ltrim<_Elem>(_Str);
}

#endif

xstrim.inl
#pragma once

#if defined(__cplusplus)
extern "C"
{
#endif


#include "xstrim.h"

#if defined(__cplusplus)
}
#endif


C Quellcode

xstrim.h
#pragma once

#include <ctype.h>
#include <wchar.h>


extern void _csltrim(char* _Str);
extern void _wcsltrim(wchar_t* _Str);
extern void _csrtrim(char* _Str);
extern void _wcsrtrim(wchar_t* _Str);
extern void _cstrim(char* _Str);
extern void _wcstrim(wchar_t* _Str);

xstrim.c
Quellcode Auszug…
#include "pch.h"

#include <memory.h>
#include <ctype.h>
#include <wchar.h>


void _cstrim(char* _Str)
{
_csrtrim(_Str);
_csltrim(_Str);
}


void _wcstrim(wchar_t* _Str)
{
_wcsrtrim(_Str);
_wcsltrim(_Str);
}
Seitenanfang
Impressum Ι Rechtliche Hinweise Ι Haftungsausschluss Ι Nutzungsbedingungen