2013-07-10 63 views
2

我想用std::replace替換std::string中的數字/十六進制值,但是當我嘗試做fileBuf.replace(0x10, 1, "0x44");時,它只是用ASCII「0x44」擴展字符串,而不是替換位置爲0x10的1個字符的值爲0x44。有沒有適當的方法來做到這一點?謝謝用十六進制值替換std :: string中的字符

回答

3

您需要使用\x轉義序列來表示十六進制字符。此外,由於您只替換了一個字符,因此可以使用字符文字而不是字符串文字:

fileBuf.replace(0x10, 1, '\x44'); 
+1

太棒了,我不知道轉義序列甚至存在。當s.o.會接受讓我 – user2537688

相關問題