std::string in char-array wandeln
-
Nixkopf schrieb:
Danke, aber geht das nicht (VIEL) einfacher? Möglichst wenig code bitte.
Klar, geht es.
NOTIFYICONDATA icondata; icondata.szTip = TEXT("Teststring");
-
Danke, aber...
cannot convert from 'const char [23]' to 'CHAR [64]'
MfG
-
Grr, daran hatte ich nicht gedacht. Dann eben doch 'copy'. Wo ist das Problem?
string str = "Hallo, Welt"; copy(str.begin(), str.end(), icondata.szTip);
-
Achso, ich dachte, das geht etwas mehr "rein C++".
Danke!
MfG
-
Nixkopf schrieb:
Achso, ich dachte, das geht etwas mehr "rein C++".
'copy' ist *absolut* "rein C++". Daher habe ich ja auch extra *nicht* 'strcpy' verwendet.
-
Oki, super.
MfG
-
Aber wenn szTip ein CHAR[64], dann gib ihm auch nur 64 Zeichen:
if (str.size () < 64) std::copy (str.begin (), str.end (), icondata.szTip); else { std::copy_n (str.begin (), 63, icondata.szTip); icondata.szTip[63] = '\0'; }
oder so ähnlich.
-
std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.
-
Wird eh mit ner fixen Länge unter 64 beschrieben, daher unnötig.
MfG
-
lolz schrieb:
std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.
Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.
-
Nixkopf schrieb:
Wird eh mit ner fixen Länge unter 64 beschrieben, daher unnötig.
Sagte der Frosch und sprang in den Mixer ;).
-
camper schrieb:
lolz schrieb:
std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.
Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.
Mir ist das schon klar, aber man sollte andere darauf hinweisen.
-
Ich denke nicht, dass die Homepageadresse meiner Gemeinschaft jemals aus über 64 Zeichen bestehen wird, zumal sich der Name sowieso niemals ändern wird.
MfG
-
lolz schrieb:
camper schrieb:
lolz schrieb:
std::copy ist für sowas aber nicht gerade der effiziente Weg. Bei built-ins ist man mit einem std::mempcy besser dran.
Das hängt von vielen Faktoren - nicht zuletzt der Implementation von std::copy (die ohne weiteres memcpy benutzten kann) ab. Zudem ist die reine Laufzeitfrage - wenn du darauf abstellen willst - oft genug gar nicht das wesentliche Kriterium.
Mir ist das schon klar, aber man sollte andere darauf hinweisen.
worauf und warum?