没有溢出风险的c++ word减去sword
时间: 2023-11-29 09:03:33 浏览: 105
假设word和sword都是字符串,可以使用C++的STL库中的string类来实现减法操作。需要注意的是,如果word中不包含sword,则减法操作会无效。
以下是一种可能的实现方式:
```c++
#include <iostream>
#include <string>
using namespace std;
string subtract(string word, string sword) {
string result = "";
int len = word.length();
int slen = sword.length();
bool found = false;
for (int i = 0; i < len; i++) {
if (!found && i + slen <= len && word.substr(i, slen) == sword) {
i += slen - 1;
found = true;
} else {
result += word[i];
}
}
return result;
}
int main() {
string word = "hello world";
string sword = "world";
string result = subtract(word, sword);
cout << result << endl; // 输出 "hello "
return 0;
}
```
在subtract函数中,我们使用了一个bool类型的变量found来判断sword是否存在于word中。如果存在,则将found设为true,然后跳过sword所在的位置;否则,将word的当前字符添加到结果字符串中。最终得到的结果就是word减去sword的值。
阅读全文