Wie kopiert man einen std::string in unsigned char-array?
Wie kopiert man einen std::string (Probe) auf ein unsigned char-array (trap)?
int main() {
unsigned char trap[256];
std::string sample = ".1.3.6.1.4";
strcpy(trap,sample.c_str());
std::cout << trap << std::endl;
}
Obigen code Fehler:
time.cpp: In function ‘int main()’:
time.cpp:20: error: invalid conversion from ‘unsigned char*’ to ‘char*’
time.cpp:20: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’
- Mit
::memcpy()
oder mit einer Besetzung aufchar*
. - kurze Antwort: Sie sollten es nicht tun. Benutzer
char
array statt. - Warum ist das, was Sie tun wollen?
- Vielen Dank , im mit c++, also bitte schreiben Sie die cast-Linie in obigem Fall?
- ich brauche zuweisen std::string in unsigned char-array
- Ich weiß, was Sie tun müssen, ich weiß nicht, warum Sie es tun wollen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Möglichkeit:
Kann es eine gute Idee zusätzlich prüfen, ob der Puffer ausreichend groß sein.
return
fehlt.std::string
hat raw-Pointern als Iteratoren (unwahrscheinlich aber möglich), der unqualifizierte Aufruf voncopy
würde nicht aufrufen, Argument Dependent Lookup und es würde nicht gefunden werden. Behoben durch hinzufügen von namespace-Qualifikation.