我正在研究 C++ 中的解释语言。目前我已经制作了一个从 javascript 解释的语言版本,其中有一些绑定到 javascripts DOM。现在,我想用 c++ 制作一个基于系统的版本,但刚开始时,我意识到,将 javascript 重写为 c++ 比我想象的要困难得多。你知道,类型定义,比较等。
现在,我正在设计能够识别小、大和混合转换中的“部分”一词的解析器。问题是,在 javascript 中,您可以使用“==”运算符将字符串值的索引与数字进行比较。这不仅评估给定左侧的值,还可以用于比较任何内容。好了,谈谈javascript。问题是,我在 C++ 方面有点缺乏经验,但实际上,我想编写一个函数,将字符串作为输入,搜索单词“section”(大写和混合)并在它看到时执行一些操作它。听起来很简单吧?好吧,这是我实际编译成功的代码,但它根本没有看到“部分”这个词:
#include <iostream>
#include <string>
string scanForSections(string iText){
for(int i=0;i<iText.size();i++){
if((iText[i]=='s'||iText[i]=='S')&&
(iText[i+1]=='e'||iText[i+1]=='E')&&
(iText[i+2]=='c'||iText[i+2]=='C')&&
(iText[i+3]=='t'||iText[i+3]=='T')&&
(iText[i+4]=='i'||iText[i+4]=='I')&&
(iText[i+5]=='n'||iText[i+5]=='N')&&
(iText[i+6]==' ')){
i+=7;
cout<<"section found!\n";
}
}
return "0";
}
int main()
{
scanForSections("section SECTION SeCtIoN");
return 0;
}
我应该如何在这里进行比较?。等于()?其他比较运算符?子串?任何解决方案?例子?