c++ - C++ 中的指针/C 字符串。如何过滤字符串?

标签 c++ arrays pointers c-strings

我有一个要过滤的数组。

示例:

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/

相关文章:

c - 如何不使用方括号而是使用指针在数组中存储一组值

c++ 不能出现在常量表达式中|

c++ - 模板实例化对编译持续时间的影响

c++ - libc++ 和 libstdc++ 之间的 istream eof 差异

java - 如何在 Java 中使用泛型复制数组

c++ - 为什么我可以在 C 中将 int 文字隐式转换为 int * 而在 C++ 中却不能?

c++ - 我的程序崩溃后,visual studio C++ 执行堆栈没有出现

javascript - 如何将非方形二维数组旋转两次以获得所有可能的旋转?

javascript - js - 如何将表数据转换为树 (JSON)

c++ - 将指向前向声明类型的指针插入 typedef vector 时出现编译器错误