输入最多100个字符,再输入正整数n和m,从字符串的第n个字符(编号最小1)开始,截取m个字符,如到字符串末尾不够m个字符则到末尾结束C++(不用substr函数)
时间: 2024-01-14 18:02:39 浏览: 55
可以使用循环遍历字符串实现截取子串的功能,具体代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int n, m;
getline(cin, str); // 输入字符串
cin >> n >> m; // 输入n和m
string sub_str = ""; // 存储子串
for (int i = n-1; i < n+m-1; i++) { // 遍历字符串
if (i >= str.length()) { // 到达字符串末尾
break;
}
sub_str += str[i];
}
cout << sub_str << endl; // 输出子串
return 0;
}
```
这里使用一个循环遍历字符串,从第n个字符开始截取m个字符,如果到达字符串末尾,则停止遍历。在遍历过程中,将每个字符添加到子串中。最后输出子串即可。
相关问题
输入最多100个字符,再输入正整数n和m,从字符串的第n个字符(编号最小1)开始,截取m个字符,如到字符串末尾不够m个字符则到末尾结束C++
可以使用substr函数实现字符串的截取,具体代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int n, m;
getline(cin, str); // 输入字符串
cin >> n >> m; // 输入n和m
string sub_str = str.substr(n-1, m); // 截取子串
cout << sub_str << endl; // 输出子串
return 0;
}
```
其中,substr函数的第一个参数是起始位置(从0开始),第二个参数是子串的长度。由于题目中的n从1开始,所以需要将n减1才能作为substr函数的参数。同时,需要注意截取的子串可能不足m个字符,此时substr函数会自动截取到字符串末尾。
python 题目描述:输入一个字符串 s 和两个整数 m、n,输出字符串 s 中位于 m 和 n(包括 m 和 n)之间 的字符串,第 1 个字符位于 1。 输入格式:在第一行中输入一个字符串 s;在第二行中输入一个正整数 m(1≤m<len(s));在第 三行中输入一个正整数 n(1<n≤len(s))。 输出格式:在一行中输出一个字符串,即截取的子串。
以下是一个 Python 解法:
```python
s = input() # 输入字符串
m = int(input()) # 输入整数 m
n = int(input()) # 输入整数 n
# 切片获取 m 到 n 的子串
sub_str = s[m-1:n]
print(sub_str) # 输出子串
```
首先,我们使用 `input()` 函数获取输入的字符串 `s` 和两个整数 `m` 和 `n`。
然后,我们使用 Python 中的切片(slice)操作,从字符串 `s` 中获取位于 `m` 和 `n` 之间的子串。在 Python 中,可以使用 `s[m-1:n]` 来获取 `s` 中从第 `m` 个字符到第 `n` 个字符的子串。需要注意的是,由于题目中规定第 1 个字符位于 1,而 Python 中字符串的第 1 个字符的索引是 0,因此我们需要将 `m` 减 1。
最后,我们使用 `print()` 函数输出子串 `sub_str`。
阅读全文