/*
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。
函数接口定义:
void strmcpy( char *t, int m, char *s );
函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。
裁判测试程序样例:
#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
*/
#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;
}
void ReadString( char s[] )
{
gets(s);
}
/*
将第1位字符变为第m位字符,然后开始复制,
实际移动m-1位
*/
void strmcpy( char *t, int m, char *s )
{
int i, cnt = 0;
for(i = m-1; t[i] != ‘\0’; i++)
s[cnt++] = t[i];
// m 超过字符串长度的情况即 i = m-1 --> t[i] == ‘\0’
s[cnt] = ‘\0’; //字符串结尾位为’\0’
}
该程序定义了一个函数strmcpy,用于将输入字符串t从第m个字符开始的所有字符复制到字符串s中。如果m超过输入字符串的长度,则s应为空。提供了一个裁判测试程序样例和输入输出样例,以及strmcpy函数的具体实现,通过移动指针并复制字符来完成操作。

5969

被折叠的 条评论
为什么被折叠?



