• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Rzutowanie char * na std::string

Object Storage Arubacloud
0 głosów
369 wizyt
pytanie zadane 16 sierpnia 2016 w C i C++ przez Zeroche Obywatel (1,030 p.)
zamknięte 16 sierpnia 2016 przez Zeroche

Oto kod : 

#pragma once 
#include <Windows.h>
#include <iostream>
#include <string>

using namespace std;

//XOR: Encrypt data before sending :D
//

string XORData(string toEncryptDecrypt) {
	char key[3] = { 'A', 'B', 'C' }; //Any chars will work
	string output = toEncryptDecrypt;

	for (int i = 0; i < toEncryptDecrypt.size(); i++)
		output[i] = toEncryptDecrypt[i] ^ key[i % (sizeof(key) / sizeof(char))];
	return output;
}

char* StringToCharPtr(string data) //funkcja nie działa ;/
{
	const char *x = data.c_str();
	char * xCharPtr = const_cast<char*>(x);
	return xCharPtr;
}

Nie wiem z jakiego powodu w xCharPtr siedzą krzaki gdy w wersji std::string'owej siedzą zaszyfrowane dane ; 

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+2 głosów
odpowiedź 16 sierpnia 2016 przez maly Nałogowiec (37,190 p.)
wybrane 16 sierpnia 2016 przez Zeroche
 
Najlepsza
StringToCharPtr zwraca wskaźnik na zawartość stringa usuniętego po wyjściu z funkcji.
Pytanie, po co takie dziwne kombinacje?
komentarz 16 sierpnia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Racja - wystarczy zwrócić normalnie ciąg znaków za pomocą c_str.

komentarz 16 sierpnia 2016 przez Zeroche Obywatel (1,030 p.)

Czyli "static char * xCharPtr = const_cast<char*>(x);"  załatwi sprawę ?  Odnośnie pytania : trzeba mi będzie wielokrotnie używać rzutowania dlatego zamykam to w funkcji :D A pozatym niemoge użyć const char * ;/ musi to być char*

komentarz 16 sierpnia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Nawet przy użyciu static nadal będziesz posiadał adres usuniętej tablicy - co najwyżej możesz użyć referencji, ale jeśli chcesz mieć modyfikowalny ciąg znaków, skopiuj zawartość stringa do nowej tablicy - inaczej zawsze będziesz posiadał odniesienie do niemodyfikowalnego ciągu ze stringa.

komentarz 16 sierpnia 2016 przez Zeroche Obywatel (1,030 p.)
Teraz rozumiem :) Zamykam

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
0 głosów
1 odpowiedź 6,907 wizyt
pytanie zadane 24 czerwca 2016 w C i C++ przez MasterFlamaster Początkujący (300 p.)
0 głosów
1 odpowiedź 1,304 wizyt
pytanie zadane 12 kwietnia 2016 w C i C++ przez Barus Stary wyjadacz (14,120 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...