7)编写程序,将用户输入的字符串中从第i个到第j个之间的字符逆序颠倒。(字符串、i、j的值都由用户从键盘输入) 例如: 输入字符串:abcdefgh 输入i:3 输入j:7 颠倒以后的字符串为:abgfedch c++
时间: 2024-02-11 17:09:22 浏览: 51
好的,这里是使用 C++ 实现这个功能的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
// 获取用户输入的字符串、i和j的值
string s;
int i, j;
cout << "请输入字符串:";
getline(cin, s);
cout << "请输入i的值:";
cin >> i;
cout << "请输入j的值:";
cin >> j;
// 将s中第i到第j个字符颠倒顺序
string sub = s.substr(i-1, j-i+1);
for (int k = 0; k < sub.length() / 2; k++) {
char temp = sub[k];
sub[k] = sub[sub.length()-k-1];
sub[sub.length()-k-1] = temp;
}
s.replace(i-1, j-i+1, sub);
// 输出结果
cout << s << endl;
return 0;
}
```
这段代码中,我们通过 `getline` 和 `cin` 函数获取用户输入的字符串、i 和 j 的值。然后,我们使用 `substr` 函数取出 s 中第 i 到第 j 个字符组成的子串,并使用循环将其颠倒顺序。最后,我们使用 `replace` 函数将颠倒顺序后的子串替换回 s 中原来的位置。需要注意的是,C++ 中字符串的下标也是从 0 开始的,因此我们不需要对用户输入的 i 和 j 的值进行减 1。