撤消/重做实施。如何比较两个std :: strings

时间:2017-11-16 17:15:40

标签: c++ string

我有两个std :: strings,我想知道它们之间有什么区别。 我想知道用户擦除或插入内容后发生了什么变化,然后将此信息放入我的Command类中:

int currentPosition;
std::string substr;
std::string typeofOperation; //Erased or Inserted

所以我需要知道插入或删除了哪种子字符串以及在哪个位置。

1 个答案:

答案 0 :(得分:0)

这是一个简单,天真的方法来帮助您入门:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str1 = "hello world";
    string str2 = "hello wor";
    string substr = "";
    int pos = -1;
    const unsigned int larger_size = (str1.size() > str2.size()? str1.size() : str2.size());

    for(unsigned int i = 0; i < larger_size; ++i)
    {
           if(str1[i] != str2[i])
           {
               if(pos == -1)
                   pos = i;
               substr += str1[i];
           }
    }
    cout << substr << " " << pos << endl;
    return 0;
}

输出:

  

ld 9

PS:我不知道实现你的目标是否值得,请查看问题的评论部分。我只是回答了这个问题。