An den Anfang einen Strings 2 Zeichen einfügen
-
Hallo!
Wie kann ich an den Anfang eines Strings zwei binäre Zeichen einfügen?
zeichen[min] = 2; data = (char)zeichen[min] + (char)0 + data;
no match for `int + std::string&' operator Code:
zeichen[min] = 2; data.insert((char)zeichen[min]+(char)0,0);
Das Programm stürzt beim Ausführen ohne Fehlermeldung ab!
-
nimm die erste variante und caste zeichen nicht nach char sondern nach string, denn er will sonst den +operator für ints (chars), den die string-klasse aber nicht hat
-
nee, machs so:
zeichen[min] = 2;
data = string((char)zeichen[min]) + string((char)0) + data;dass müsste gehn
-
und bei der zweiten variante addierst du zwei chars... in diesem fall werden die aber als zahlen behandelt und wenn du 0 addierst, bleibt der wert von zeichen[min]... geht also nicht
-
DANKE!!!
-
Klappt leider doch nicht. Der Compiler spuckt fogende Fehlermeldung aus:
invalid conversion from `char' to `const char*' initializing argument 1 of `std::basic_string<_CharT, _Traits,
-
dann musst du wohl den umweg über ein extra-char array gehen:
char char_array[2]; zeichen[min] = 2; char_array[0] = zeichen[min]; char_array[1] = 0; data = string((const char *) char_array) + data;
dass MUSS gehen!
-
Oder einfach:
data.insert(data.begin(), static_cast<char>(zeichen[min]));
Nachtrag: Ehm, Moment. Die 0 soll wohl auch noch in den string rein - das wäre bei der Lösung hier und der davor natürlich nicht der Fall. Dafür müsstest du dann wohl nochmal insert() mit static_cast<char>(0) aufrufen. (Wow, was für eine Editierorgie...)