'const char [9]' kann nicht in 'char [9]' konvertiert werden?!?!
-
Hallo Liebe Community!
Ich habe das Problem dass beim Compelieren kommt'const char [9]' kann nicht in 'char [9]' konvertiert werden
und ich noch nicht lange Programmiere und leider keine Ahnung habe, was ich falsch gemacht habe.
achja der betreffende Codeteil ist:
char Figur[9]; ... case 6: Figur = "Dame ";
Könnt ihr mir helfen?
MFG Grap :xmas1:
-
Du kannst einem C-String auf diese Weise nichts zu zuweisen.
Benutz std::string.
std::string Figur; ... case 6: Figur = "Dame";
Dann gehts auch mit der Dame.
-
Vielen Dank!!!
-
Grap schrieb:
Hallo Liebe Community!
Ich habe das Problem dass beim Compelieren kommt'const char [9]' kann nicht in 'char [9]' konvertiert werden
und ich noch nicht lange Programmiere und leider keine Ahnung habe, was ich falsch gemacht habe.
achja der betreffende Codeteil ist:
char Figur[9]; ... case 6: Figur = "Dame ";
Könnt ihr mir helfen?
MFG Grap :xmas1:
Wenn Du mit char arbeiten willst:
#include <cstring> ... char Figur[10]; ... case 6: strcpy(Figur, "Dame ";
Nicht vergessen, Speicherplatz für die (unsichtbare) abschliessende Null reservieren,
denn C-Strings sind nullterminiert. :xmas1:
-
warum
strcpy(Figur, "Dame ");
-strcpy(Figur, "Dame");
würds doch genau so tun...
außerdem strcpy_s (so hieß es doch?!) und so ^^bb
-
unskilled schrieb:
warum
strcpy(Figur, "Dame ");
-strcpy(Figur, "Dame");
würds doch genau so tun...
außerdem strcpy_s (so hieß es doch?!) und so ^^Vielleicht will er ja die Leerzeichen drin haben
strcpy_s
ist soweit ich weiss nicht im Standard, jedenfalls ganz sicher nicht im C++ Standard. Es wurde soweit ich weiss, nur zur Standardisierung vorsgeschlagen. Allerdings habe ich leichte Zweifel, ob sich das durchsetzt, denn es scheint nur Microsoft daran interessiert zu sein und es sind glaub ich momentan auch die einzigen, welchenstrcpy
_s in der Bibliothek haben.@Grap,
Einfach noch als Zusatz. Arrays sind in C++ nicht zuweisebar, egal von welchem Typ. Man muss sich immer mit Funktionen aushelfen. Typische Funktionen in C sind hierfür,memcpy
undstrcpy
.
In C++, wenn man denn wirklich mal ein C-Array verwendet (im allgemeinen braucht man die Standardcontainer, da leichter zu handhaben), dann verwendet manstd::copy
.C/C++ Referenz: http://www.cplusplus.com/reference/
Grüssli
-
Dravere schrieb:
unskilled schrieb:
warum
strcpy(Figur, "Dame ");
-strcpy(Figur, "Dame");
würds doch genau so tun...
außerdem strcpy_s (so hieß es doch?!) und so ^^Vielleicht will er ja die Leerzeichen drin haben
strcpy_s
ist soweit ich weiss nicht im Standard, jedenfalls ganz sicher nicht im C++ Standard. Es wurde soweit ich weiss, nur zur Standardisierung vorsgeschlagen. Allerdings habe ich leichte Zweifel, ob sich das durchsetzt, denn es scheint nur Microsoft daran interessiert zu sein und es sind glaub ich momentan auch die einzigen, welchenstrcpy
_s in der Bibliothek haben.Wieder was dazu gelernt ^^