搜索/替换c ++中字符指针指向的字符数组

问题描述

|| 这是我的函数调用
removeTags(*buf,bufSize);
哪个调用
void removeTags(char* dataBlock,unsigned long size) 
{
    char* start = dataBlock; 
    char* end = dataBlock + size;

    while(start < end)
    {
    //How do I replace the characters \"\\abc\" with just nothing,\'\'.
        }
我想用任何字符替换\\ abc字符的任何实例。     

解决方法

        找到
\\abc
的实例后,只需将
\\abc
之后的所有字符向后移动四个位置(四个是因为
\\abc
的长度为四个字符)(可以使用
memmove
)。 例如:
one two \\abc three
        <----^ copy everything from the \'t\' down backwards over the \\abc
请注意,这样做之后,您的
end
指针将失效,因此您必须对其进行更新。 在another9ѭs中用ѭ8can或
std::string
s用
std::string::find
可以找到一个字符串在另一个字符串中的位置。当然,如果您使用的是
std::string
,那么您可以只使用
std::string::replace
。     ,        您可以通过向下移动所有以下字符来删除不需要的字符。 您应该能够通过拥有from_pointer和to_pointer一次完成操作,并将当前from_pointer复制到to_pointer或递增from_pointer来跳过要省略的字符。     ,        如果这不是家庭作业,则可以使用Boost库中的regex_replace。