问题描述为输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,再输出字符串 s。 要求定义并调用函数 strmcpy(s,t,m), 它的功能是将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,函数形参s和t的类型是字符指针,形参m的类型是int,函数类型是void。
时间: 2024-03-22 09:37:32 浏览: 118
输入一个正整数,判断是不是素数(C++)
以下是使用C++实现的程序:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void strmcpy(char* s, char* t, int m);
int main() {
int repeat;
cin >> repeat;
for (int i = 0; i < repeat; i++) {
char t[100], s[100];
int m;
cin >> t >> m;
strmcpy(s, t, m);
cout << s << endl;
}
return 0;
}
void strmcpy(char* s, char* t, int m) {
strcpy(s, t+m-1);
}
```
在上面的程序中,我们首先读入一个正整数repeat,然后使用for循环重复运算。在每次运算中,我们读入一个字符串t和一个正整数m,然后调用函数strmcpy将t中从第m个字符开始的全部字符复制到字符串s中,最后输出字符串s。
函数strmcpy的实现非常简单,它使用strcpy函数将t中从第m个字符开始的全部字符复制到s中即可。需要注意的是,字符串的下标从0开始,而题目中从第m个字符开始,因此我们要将m减1。
阅读全文