我有一个要过滤的数组。
示例:
str = "hellothere"
和 filter = "eo"
。当我需要过滤时怎么办?
void filter_str(char* str, char* filter, char*result)
{
while(*str)
{
if() //If the current character in str is one to be filter.
{
*str++;
}
else
{
*result++ = *str++;
}
}
*result = '\0';
}
我只是不知道如何检查当前字符是否是需要过滤的字符。由于过滤器可以是多个字符,例如“eo”。我如何检查每个循环的“e”和“o”,然后在开始时将过滤器重置回“e”。
我想创建一个指向过滤器开始的指针,然后在 while 结束时使用它返回到过滤器的开始。但我不确定如何让它针对所有要过滤的字符检查 *str 。
最佳答案
在这种情况下,已经编写了一个函数来为您完成繁重的工作
if (strchr(filter, *str))
一般来说,如果您的处理过程太复杂而您无法处理,这就是任何问题的答案。编写一个函数来解决“内部”问题,然后在“外部”问题中使用该函数。在这种情况下,内部问题是在字符串中查找字符,外部问题是您正在进行的过滤操作。你只是幸运,内心的问题已经为你解决了。
关于c++ - C++ 中的指针/C 字符串。如何过滤字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024645/