6-17 使用函数实现字符串部分复制 (20 分)
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。
函数接口定义:
void strmcpy( char *t, int m, char *s );
裁判测试程序样例:
#include <stdio.h>
#define MAXN 20
void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */
int main()
{
char t[MAXN], s[MAXN];
int m;
scanf("%d\n", &m);
ReadString(t);
strmcpy( t, m, s );
printf("%s\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
7 happy new year |
---|
输出样例:*
new year |
---|
一开始,我直接写的
s=t+m-1 |
---|
结果发现是错的,百度了一下
char s[MAXN];
char *s;
发现二者是有区别的,前者 s 是常量,后者 s 是变量,很显然,我这种给常量赋值的写法肯定是错的,所以我改进了一下,发现下面这样写能通过测试点,应该是没问题了
#include <string.h>
void strmcpy( char *t, int m, char *s )
{
char *a;
a=t+m-1;
strcpy(s,a);
}
本人大一新生,指针的内容老师都还没教,要是有什么错误还望大家指正,谢谢~~?