1 // 2001-10-30 Benjamin Kosnik <bkoz@redhat.com>
3 // Copyright (C) 2001 Free Software Foundation, Inc.
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 2, or (at your option)
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING. If not, write to the Free
18 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
21 // 21.3.5 string modifiers
25 #include <testsuite_hooks.h>
34 const char* strlit
= "../the long pier/Hanalei Bay/Kauai/Hawaii";
36 string::size_type i
= aux
.rfind("/");
37 if (i
!= string::npos
)
38 aux
.assign(aux
, i
+ 1, string::npos
);
39 VERIFY(aux
== "Hawaii");
43 if (i
!= string::npos
)
44 aux
.assign(aux
, i
+ 1, string::npos
);
45 VERIFY(aux
.c_str()[9] == 'B');
46 VERIFY(aux
== "/Hanalei Bay/Kauai/Hawaii");
49 // assign(const basic_string& __str, size_type __pos, size_type __n)
57 string one
= "Selling England by the pound";
59 string three
= "Brilliant trees";
61 one
.assign(one
, 8, 100);
62 VERIFY( one
== "England by the pound" );
64 one
.assign(one
, 8, 0);
67 one
.assign(two
, 8, 7);
68 VERIFY( one
== "England" );
70 one
.assign(three
, 10, 100);
71 VERIFY( one
== "trees" );
73 three
.assign(one
, 0, 3);
74 VERIFY( three
== "tre" );
77 // assign(const _CharT* __s, size_type __n)
78 // assign(const _CharT* __s)
89 const char * source
= "Selling England by the pound";
92 VERIFY( one
== "Selling England by the pound" );
94 one
.assign(source
, 28);
95 VERIFY( one
== "Selling England by the pound" );
97 two
.assign(source
, 7);
98 VERIFY( two
== "Selling" );
100 one
.assign(one
.c_str() + 8, 20);
101 VERIFY( one
== "England by the pound" );
103 one
.assign(one
.c_str() + 8, 6);
104 VERIFY( one
== "by the" );