【问题描述】编写函数mcopy(char *s, char *t, int m)完成:输入一个字符串,将该字符串中从第m个字符(m从0开始)开始的全部字符复制成另一个字符串,m由用户输入(其值小于串长)。 【输入形式】 字符串<回车> m的值<回车> 【输出形式】 从第m(m应小于串长)个字符开始的全部字符 【样例输入】 Hello World 2 【样例输出】 llo World 调用mcopy(char *s, char *t, int m)的主函数如下: int main() {char s[N], t[N]; int m; gets(s); scanf("%d", &m); if(mcopy(s, t, m) == 1) puts(t); else printf("%d应小于串长\n", m); return 0; }
时间: 2024-01-11 22:02:51 浏览: 25
以下是mcopy函数的C语言实现:
```c
int mcopy(char *s, char *t, int m) {
int len = strlen(s);
if (m >= len) { // 如果m大于等于串长,返回0
return 0;
}
strcpy(t, s + m); // 复制从第m个字符开始的全部字符到t中
return 1;
}
```
在主函数中,先输入字符串s和整数m,然后调用mcopy函数,并根据函数的返回值输出结果。
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
#define N 100
int mcopy(char *s, char *t, int m) {
int len = strlen(s);
if (m >= len) { // 如果m大于等于串长,返回0
return 0;
}
strcpy(t, s + m); // 复制从第m个字符开始的全部字符到t中
return 1;
}
int main() {
char s[N], t[N];
int m;
gets(s);
scanf("%d", &m);
if (mcopy(s, t, m) == 1) {
puts(t);
} else {
printf("%d应小于串长\n", m);
}
return 0;
}
```