输入最多100个字符,再输入正整数n和m,从字符串的第n个字符(编号最小1)开始,截取m个字符,如到字符串末尾不够m个字符则到末尾结束C++(不用substr函数)用字符数组
时间: 2024-02-04 22:01:45 浏览: 59
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
好的,可以通过以下代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[101]; // 字符串数组
int n, m; // 起始位置和截取长度
cin >> str >> n >> m;
int len = strlen(str); // 字符串的长度
if (n > len) { // 起始位置超出字符串范围
cout << "起始位置超出字符串范围!" << endl;
return 0;
}
char res[101] = {0}; // 存储截取结果的数组
int cnt = 0; // 已经截取的字符数
for (int i = n - 1; i < len && cnt < m; i++) { // 从起始位置开始截取
res[cnt++] = str[i];
}
cout << res << endl; // 输出截取结果
return 0;
}
```
这里先输入一个最多100个字符的字符串,然后输入起始位置n和截取长度m。接着,我们通过`strlen`函数获取字符串的实际长度,如果起始位置超出字符串范围,则输出错误信息。否则,我们创建一个字符数组`res`,用于存储截取结果。接下来,我们从起始位置开始遍历字符串,将每个字符存储在`res`数组中,直到已经截取了m个字符或者到达字符串末尾。最后,我们输出`res`数组即可。
阅读全文