string funktionen
-
wunderschönen guten morgen

ich beschäftige mich im moment etwas mit c++, ich habe mir gerade 2 simple string funktionen geschrieben um mich etwas mit der sprache auseinader zu setzen.
string strleft(string *str, unsigned int len) { string str2 = str->substr(0, len); return str2; } string strleft(char *chr, unsigned int len) { string str = static_cast<string>(chr); return str.substr(0, len); } int main(int argc, char *argv[]) { string str = "123456"; cout << strleft(&str, 3) << " " << strleft("654321", 3) << endl; system("PAUSE"); return EXIT_SUCCESS; }nun wollt ich einfach mal nachfragen ob dies der 'richtige' ansatz ist und was man eventuelle besser machen könnte, oder ob ich hier eher unfug angestellt habe.
-
Hallo
// String als Referenz übergeben, dann kann kein ungültiges // Objekt übergeben werden string strleft(const string& str, unsigned int len) { return str.substr(0, len); } /* Funktion brauchst du nicht, wird bereits durch erste erledigt string strleft(char *chr, unsigned int len) { string str = static_cast<string>(chr); // Nicht gut, char* und std::string sind nicht direkt verwandt, können nicht so gecastet werden return str.substr(0, len); } */ int main(int argc, char *argv[]) { string str = "123456"; cout << strleft(str, 3) << " " << strleft("654321", 3) << endl; system("PAUSE"); return EXIT_SUCCESS; }bis bald
akari
-
#include <iostream> #include <string> using namespace std; const string strleft(const string& str, unsigned int len) { return str.substr(0, len); } /*const string strleft(const char *const chr, unsigned int len) { return static_cast<string>(chr).substr(0, len); }*/ int main(int argc, char *argv[]) { const string str = "123456"; cout << strleft(str, 3) << " " << strleft("654321", 3) << endl; system("PAUSE"); return EXIT_SUCCESS; }irgendwie c c++ gemischt.
-
ok danke für den tip

-
netrobot schrieb:
const string strleft(const string& str, unsigned int len) ^^^^^Hier ist die konstante Übergabe widerum nicht unbedingt erforderlich, da sowieso kopiert wird (ggfs. Return-Value-Optimized) und der Empfänger entscheiden kann ob das Ergebnis konstant sein soll.