酷代码 AI
菜单

给出三个字符串,要求将第一个字符串中指定位置和长度的部分替换成第二个字符串,将第二个字符串中指定位置和长度的部分截取,将第三个字符串中指定位置和长度的部分删除,并将所有结果输出。c++

以下是一个满足你需求的 C++ 程序。该程序接收三个字符串,对每个字符串进行不同的操作:将第一个字符串中指定位置和长度的部分替换成第二个字符串;将第二个字符串中指定位置和长度的部分截取;将第三个字符串中指定位置和长度的部分删除,最后输出所有操作结果。 ```cpp #include <iostream> #include <string> // 函数用于将第一个字符串中指定位置和长度的部分替换成第二个字符串 std::string replaceSubstring(const std::string& str1, const std::string& str2, size_t pos, size_t len) { std::string result = str1; result.replace(pos, len, str2); return result; } // 函数用于将第二个字符串中指定位置和长度的部分截取 std::string extractSubstring(const std::string& str, size_t pos, size_t len) { return str.substr(pos, len); } // 函数用于将第三个字符串中指定位置和长度的部分删除 std::string removeSubstring(const std::string& str, size_t pos, size_t len) { std::string result = str; result.erase(pos, len); return result; } int main() { // 定义三个字符串 std::string str1 = "Hello, World!"; std::string str2 = "Python"; std::string str3 = "Programming"; // 指定操作的位置和长度 size_t replacePos = 7; size_t replaceLen = 5; size_t extractPos = 1; size_t extractLen = 3; size_t removePos = 4; size_t removeLen = 3; // 执行操作 std::string replacedStr = replaceSubstring(str1, str2, replacePos, replaceLen); std::string extractedStr = extractSubstring(str2, extractPos, extractLen); std::string removedStr = removeSubstring(str3, removePos, removeLen); // 输出结果 std::cout << "替换后的字符串: " << replacedStr << std::endl; std::cout << "截取后的字符串: " << extractedStr << std::endl; std::cout << "删除后的字符串: " << removedStr << std::endl; return 0; } ``` 代码解释: 1. `replaceSubstring` 函数:该函数接收两个字符串 `str1` 和 `str2`,以及位置 `pos` 和长度 `len`。使用 `std::string` 的 `replace` 方法将 `str1` 中从 `pos` 位置开始长度为 `len` 的部分替换为 `str2`,并返回替换后的字符串。 2. `extractSubstring` 函数:该函数接收一个字符串 `str`,以及位置 `pos` 和长度 `len`。使用 `std::string` 的 `substr` 方法截取 `str` 中从 `pos` 位置开始长度为 `len` 的部分,并返回截取后的字符串。 3. `removeSubstring` 函数:该函数接收一个字符串 `str`,以及位置 `pos` 和长度 `len`。使用 `std::string` 的 `erase` 方法删除 `str` 中从 `pos` 位置开始长度为 `len` 的部分,并返回删除后的字符串。 4. `main` 函数:定义三个字符串 `str1`、`str2` 和 `str3`,并指定操作的位置和长度。调用上述三个函数执行相应的操作,并将结果存储在 `replacedStr`、`extractedStr` 和 `removedStr` 中。最后输出所有操作结果。 复杂度分析: - 时间复杂度:每个操作的时间复杂度均为 $O(n)$,其中 $n$ 是字符串的长度。 - 空间复杂度:主要用于存储操作结果,空间复杂度为 $O(n)$。 [2026-01-31 20:35:33 | AI问答 | 905点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多