Я закодировал это XOR, используя строку, но теперь мне нужно вернуть char*. Я пытался сделать это часами, хотя я не привык работать с char. Думаю, я что-то здесь упускаю.
string XOR(string s, int key){
string res = "";
for (size_t temp = 0; temp < s.size(); ++temp){
res += s[temp] ^ ((key + temp) % 255);
}
return res;
}
Как я могу изменить это, чтобы получить char* взамен?
Отредактировано, чтобы уточнить: мне нужен char*: char* XOR (строка s, ключ int)
string
вы можете вызватьc_str()
, чтобы получитьconst char*
. - person Peter Wood   schedule 17.03.2013char
определялось. - person Keith Thompson   schedule 17.03.2013res
просто выскочит из стека. - person antonijn   schedule 17.03.2013const char *
, которое вы возвращаете изc_str()
, будет недействительным в момент возврата функции. - person Jonathan Grynspan   schedule 17.03.2013c_str()
, так как после окончания области действия функции возникают проблемы с продолжительностью жизни. - person Peter Wood   schedule 17.03.2013