使用函数实现字符串部分复制--PTA
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。函数接口定义:void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。裁判测试程序样例:#include <stdio.h>...
·
本题要求编写函数,将输入字符串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
代码:
/* 法一:
void strmcpy( char *t, int m, char *s )
{
t=t+m-1;
while(*t!='\0')
{
*s=*t;
s++;
t++;
}
*s='\0';
}
*/
//--------------------------
法二:
/*
//#include<string.h>-----------------------
void strmcpy( char *t, int m, char *s )
{
int n,i,p=0;
memset(s,0,sizeof(s));//初始化字符串s
n=strlen(t);//计算字符串t的长度
if(m>n)
*s=NULL;
else
{
for(i=m-1;i<=n-1;i++)
{
s[i-(m-1)]=t[i];
}
}
}
*/
//
法三:
void strmcpy( char *t, int m, char *s )
{
int n,i,p=0;
n=strlen(t);//计算字符串t的长度
for(i=m-1;i<=n-1;i++)
{
s[p]=t[i];
p++;
}
}
//------------------------------------------------
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)