PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : string.h



Claudine
22-07-2003, 08:29
.replace, pop_back() funktionieren leider nicht, wenn ich string.h includiere.
Alle anderen Funktionen schon (find, insert, push_back usw.).

Scheint ob, als ob meine string.h diese Funktionen nicht ünterstützt.

test.cpp: In function `int main(int, char**)':
test.cpp:46: no matching function for call to `std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::pop_back()'

Ist meine string.h zu alt??

OS: Suse Linux 8.1 / gcc version 3.2

wraith
22-07-2003, 08:43
Also erstmal heißt der Header string,und nicht string.h,das wäre nämlich ein C Header :).
Dann,es gibt in basic_string kein pop_back,und bei replace haste vielleicht irgendeinen Fehler beim Aufruf gemacht.
Hier eine Aufstellung der Methoden von basic_string
http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=string2.html

Claudine
22-07-2003, 11:48
string was("c++ ist grausam");
was.replace(1, 1, 'A') ;


erzeugt eine ähnliche Fehlermeldung

test.cpp: In function `int main(int, char**)':
test.cpp:45: invalid conversion from `char' to `const char*'
test.cpp:45: initializing argument 3 of `std::basic_string<_CharT, _Traits,
_Alloc>& std::basic_string<_CharT, _Traits,
_Alloc>::replace(_Alloc::size_type, _Alloc::size_type, const _CharT*) [with
_CharT = char, _Traits = std::char_traits<char>, _Alloc =
std::allocator<char>]'

wraith
22-07-2003, 12:48
Original geschrieben von Claudine
string was("c++ ist grausam");
was.replace(1, 1, 'A') ;

Klar,das dritte Argument muß ein const char* Pointer sein,also ändere die ' in ".

Claudine
22-07-2003, 18:26
Original geschrieben von wraith
Klar,das dritte Argument muß ein const char* Pointer sein,also ändere die ' in ".

Danke, jetzt funktioniert es.