Поделиться через


collate::transform

Преобразует последовательность символов от языкового стандарта в строку, которая может быть использована в лексикографических сравнении с другими последовательности символов аналогично преобразованные из той же языковой стандарт.

string_type transform(
   const CharType* _First,
   const CharType* _Last
) const;

Параметры

  • _First
    Указатель на первый символ в последовательности, который необходимо преобразовать.

  • _Last
    Указатель к последнему знаку в последовательности, который необходимо преобразовать.

Возвращаемое значение

Строка, содержащая преобразованную последовательность знаков.

Заметки

Функция-член возвращает do_transform(_First, _Last).

Пример

// collate_transform.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <tchar.h>
using namespace std;

int main( )   
{
   locale loc ( "German_Germany" );
   _TCHAR* s1 = _T("\x00dfzz abc."); 
   // \x00df is the German sharp-s (looks like beta), 
   // it comes before z in the alphabet
   _TCHAR* s2 = _T("zzz abc."); 

   collate<_TCHAR>::string_type r1;   // OK for typedef?
   r1 = use_facet< collate<_TCHAR> > ( loc ).
      transform (s1, &s1[_tcslen( s1 )-1 ]);
   
   cout << r1 << endl;

   basic_string<_TCHAR> r2 = use_facet< collate<_TCHAR> > ( loc ).
      transform (s2, &s2[_tcslen( s2 )-1 ]);
   
   cout << r2 << endl;

   int result1 = use_facet<collate<_TCHAR> > ( loc ).compare 
      (s1, &s1[_tcslen( s1 )-1 ],  s2, &s2[_tcslen( s2 )-1 ] );

   cout << _tcscmp(r1.c_str( ),r2.c_str( )) << result1 
      << _tcscmp(s1,s2) <<endl;
}
  
  
  
  
  
  
  

Требования

заголовок: <locale>

std пространство имен:

См. также

Ссылки

collate Class