将用户从键盘输入的字符串t中从第m个字符开始的全部字符复制到字符串s中。如果m已经大于字符串t的长度,则s是一个空串(就是给下标为0的元素赋值为'\0')。
函数接口定义:
void strmcpy( char *t, int m, char *s );
在这里解释接口参数。例如:其中 t
指向用户输入的字符串; m
代表从哪个位置开始复制,m是一个>=1的数字; s
是输出参数,表示从t中第m个字符起复制的字符串,装入s中。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>
#define MAXN 100
//从t指向的字符串中,复制从第m个字符起到s中
void strmcpy( char *t, int m, char *s );
int main()
{
char t[MAXN], s[MAXN];
int m;
scanf("%d\n", &m);
scanf("%s",t);
strmcpy( t, m, s );
printf("%s\n", s);
return 0;
}
/* 请在这里填写答案 */
输入样例:
HiSwpu的第三个字符是S,从这里复制,得到的结果是Swpu。
3
HiSwpu
结尾无空行
输出样例:
Swpu
结尾无空行
#include<stdlib.h>
void strmcpy( char *t, int m, char *s ){
int i=0;
if(m>strlen(t)){
*s='\0';
}
while(*(t+i)!='\0'){
*(s+i)=*(t+m+i-1);//这里我竟然加了双等号!!!!这个错误简直低龄
i++;
}
*(s+i+1)='\0';
}