在不迭代的情况下从字符串数组中识别特定字符串
Recognize a specific string from a string array without iteration
我正在用c++编写一个导数计算器,为了正确地执行导数操作,我需要在输入方程的字符串的不同字符索引处解析输入方程。我使用isdigit()解析出等式中的数值,然后将它们存储到一个单独的字符串数组中,但是现在我需要解析出等式中的数学符号,以确定我需要执行哪个操作。
是否有任何方法我可以修改(覆盖?)isdigit()从字符串数组中识别自定义值?我希望避免迭代,以使我的代码不那么混乱,因为我将在这个程序的其余部分使用大量循环,并且我希望我的代码易于理解。覆盖和继承在c++工作类似于继承在Java(与多个继承/接口的例外)?
请避免张贴与此问题范围无关的解决方案,IE;在c++中推导方程的不同方法,因为我在一些相当特殊的原因中使用了这种方法。
谢谢
您可以使用新的强大的c++ 11正则表达式库,它几乎可以完成您想要的任何解析。这样,您将避免迭代和代码混乱。
您可以直接使用strchr
。(不是每个人都喜欢这里的宏,但它们确实使组合字符类变得容易。)
#define OPERATOR "+-*/"
#define DIGIT "0123456789"
// Is c an operator
if (strchr(OPERATOR, c)) {
// Yes it is
}
或:
// Is c an operator or a digit?
if (strchr(OPERATOR DIGIT, c)) {
// Yup
}
重写和继承的工作原理与Java中的基本相同。您需要将函数定义为虚函数,并在派生类中重新定义它。
我知道"请避免张贴…",但我已经写了一个库,做函数解析和派生。
可在https://github.com/B3rn475/MathParseKit
我希望你能在那里找到一些技巧
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组