Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图在std::stringusing中替换一个数字/十六进制值,std::replace但是当我尝试这样做时,fileBuf.replace(0x10, 1, "0x44");它只是用 ASCII "0x44" 扩展字符串,而不是用0x10value替换 position 处的 1 字符0x44。有没有合适的方法来做到这一点?谢谢
std::string
std::replace
fileBuf.replace(0x10, 1, "0x44");
0x10
0x44
您需要使用\x转义序列来表示十六进制字符。此外,由于您只替换一个字符,您可以使用字符文字而不是字符串文字:
\x
fileBuf.replace(0x10, 1, '\x44');