Vb in C++ übersetzen (kurz) mid

DanielKobzan

Mitglied
Kennt jemand den Befehl für C++, der das selbe wie in VB bewirkt. Der Befehl ist

a = mid(b,1,3)

Gibt es so einen Befehl überhaupt in C++. Der Befehl bewirkt, dass die Variable a den Inhalt der Variable b von der 1. Stelle, 3 Stellen lang enthält. Also, wenn b = 12345, dann a = 123.
 
Ich nehme mal an es geht um Strings?

Im Prinzip hat praktisch jeder String-Typ in C++ solche Funktionen bereits eingebaut, wenn du std::string verwendest ist es substr(), solltest du eigentlich C meinen funktioniert es per strncpy()
 
String könnten schon stimmen, hab aber kein Ahnung.

Also, wenn ich

string s("nhHallodv");
string a;
a = s.substr(2,5);

ausführen würde, dann wäre a "Hallo"?
 
Ja. Die sicherste (und einfachste) Variante: Wenn du nicht ganz sicher weißt was ein Code macht: Wirf ihn dem Compiler zum Fraß vor.
 
so, jetzt hab ich folgendes in den Compiler eingegeben

#iclude <string>
.
.
.
using namespace std;
string s("nhHallodv");
string a;
a = s.substr(0,5);
MessageBox(a);

Dann gibt er mir aber folgende Fehlermeldung aus:

--
error C2664: 'MessageBoxA' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'

No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
--

und ich hab keine Ahnung, was das bedeutet.
 
du musst a.c_str() an MessageBox() übergeben, damit das ganze zuerst in einen standard c-string konvertiert wird
 

Neue Beiträge

Zurück