如何解决搜索/替换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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。