2
我想用std::replace
替換std::string
中的數字/十六進制值,但是當我嘗試做fileBuf.replace(0x10, 1, "0x44");
時,它只是用ASCII「0x44」擴展字符串,而不是替換位置爲0x10
的1個字符的值爲0x44
。有沒有適當的方法來做到這一點?謝謝用十六進制值替換std :: string中的字符
我想用std::replace
替換std::string
中的數字/十六進制值,但是當我嘗試做fileBuf.replace(0x10, 1, "0x44");
時,它只是用ASCII「0x44」擴展字符串,而不是替換位置爲0x10
的1個字符的值爲0x44
。有沒有適當的方法來做到這一點?謝謝用十六進制值替換std :: string中的字符
您需要使用\x
轉義序列來表示十六進制字符。此外,由於您只替換了一個字符,因此可以使用字符文字而不是字符串文字:
fileBuf.replace(0x10, 1, '\x44');
太棒了,我不知道轉義序列甚至存在。當s.o.會接受讓我 – user2537688