编写程序,删除字符串中指定位置m 上开始的n个字符,并输出删除后的字符串。
时间: 2023-06-17 08:03:09 浏览: 44
以下是 Python 代码实现:
```python
def delete_substring(string, m, n):
"""
删除字符串中指定位置m上开始的n个字符
"""
if m < 0 or m >= len(string):
return string
return string[:m] + string[m+n:]
# 测试
string = "Hello, world!"
m = 7
n = 5
result = delete_substring(string, m, n)
print(result) # 输出 "Hello, !"
```
代码中,我们定义了一个 `delete_substring` 函数,接受三个参数:原字符串、开始删除的位置 `m`、要删除的字符个数 `n`。函数首先判断 `m` 是否越界,如果越界则直接返回原字符串。否则,利用切片操作将字符串分成两部分,再拼接成新的字符串。
最后,我们进行一个简单的测试,将一个字符串的第 7 个字符开始的 5 个字符删除,并输出结果。
相关问题
编写程序,删除字符串中指定位置m 上开始的n个字符,并输出删除后的字符串。C++
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int m, n;
cout << "请输入一个字符串: ";
getline(cin, str);
cout << "请输入要删除的起始位置m: ";
cin >> m;
cout << "请输入要删除的字符个数n: ";
cin >> n;
// 检查要删除的字符数是否超过字符串长度
if (n > str.length() - m) {
n = str.length() - m;
}
// 删除指定位置开始的n个字符
str.erase(m, n);
cout << "删除后的字符串为: " << str << endl;
return 0;
}
```
首先,我们使用 `getline` 函数读取用户输入的字符串。然后,我们使用 `cin` 分别读取要删除的起始位置 `m` 和要删除的字符个数 `n`。
接着,我们检查要删除的字符数是否超过字符串长度,如果超过,则将要删除的字符数设置为字符串长度减去起始位置 `m`。
最后,我们使用 `erase` 函数删除指定位置开始的 `n` 个字符,并输出删除后的字符串。
注意,以上示例代码中使用了 `string` 类型来存储字符串,`erase` 函数是 `string` 类的一个成员函数。
编写子程序,删除字符串中从第n个字符开始的m个字符。
以下是一个示例 Perl 子程序,可以删除从字符串第 $n 个字符开始的 $m 个字符:
```
sub delete_chars {
my ($string, $n, $m) = @_;
my $length = length $string;
# 如果 $n 大于字符串长度,直接返回原字符串
return $string if $n > $length;
# 从 $n 开始,删除 $m 个字符
substr($string, $n - 1, $m) = "";
return $string;
}
```
这个子程序接受三个参数:字符串、删除开始位置 $n 和删除的字符数 $m。如果 $n 大于字符串长度,子程序会直接返回原字符串。否则,子程序会从第 $n 个字符开始删除 $m 个字符,并返回删除后的字符串。
以下是使用这个子程序的例子:
```
my $string = "hello world";
$string = delete_chars($string, 7, 5);
print $string; # 输出 "hello"
```