输入一个字符串,将该字符串中从第m 个字符开始的全部字符复制成另 一个 宇符串。m 由用户输入,值小于字符串的长度。要求编写一个两数 void mcopy (char s1,char tl, int m)来完成。
时间: 2024-03-25 20:38:14 浏览: 14
好的,我明白了。这是一个字符串复制的问题,需要编写一个函数 `mcopy` 来实现。
以下是一个可能的实现:
```c++
void mcopy(char s1[], char s2[], int m) {
// 计算 s1 的长度
int len = strlen(s1);
// 如果 m 大于等于 s1 的长度,那么无法复制,直接返回
if (m >= len) {
return;
}
// 从第 m 个字符开始复制
for (int i = m; i < len; i++) {
s2[i-m] = s1[i];
}
// 在复制的字符串末尾加上结束符号
s2[len-m] = '\0';
}
```
这个函数接受三个参数:
- `s1`:源字符串,需要复制的字符串。
- `s2`:目标字符串,复制出来的字符串将会被存储在这个字符串中。
- `m`:从第 m 个字符开始复制。
函数的实现思路很简单,就是从第 m 个字符开始,将 s1 中的字符逐个复制到 s2 中,注意要在 s2 的末尾加上字符串结束符号。
调用这个函数的方式如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void mcopy(char s1[], char s2[], int m);
int main() {
char s1[100], s2[100];
int m;
cout << "请输入字符串 s1 和 m:" << endl;
cin >> s1 >> m;
mcopy(s1, s2, m);
cout << "复制出来的字符串是:" << s2 << endl;
return 0;
}
```
注意,在调用 `mcopy` 函数之前,需要先定义两个字符串 s1 和 s2,用来存储输入的字符串和复制出来的字符串。在调用结束后,可以直接输出 s2 来查看结果。