使用函数实现字符串部分复制(PTA)
由于题目中有一个函数由裁判实现,在这里为方便实验我将函数一并写出:
#include <stdio.h>
#define MAXN 20
int main()
{
char t[MAXN], s[MAXN];
int m;
scanf("%d\n", &m);
gets(t);
strmcpy( t, m, s );
printf("%s\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
在Windows code::blocks 20.03中gets()仍能使用,但在linux系统中不能。
#include <string.h>
void strmcpy( char *t, int m, char *s ){
int i;
if(m>strlen(t))
*s='\0';//空字符情况;
else
{
for(i=m-1;i<strlen(t);i++,s++)
{
*s=*(t+i);
}
*s='\0';/*作字符串s的结束符*/
}
}
这里我使用了库函数计算字符串长度,同样可以使用循环结构实现。
PTA的裁判程序是以文本形式进行对照的所以在字符数组s结束时需要包含字符串结束符。
*s='\0';/*作字符串s的结束符*/
在这里i++,s++后跳出循环后,此时s恰为下一个元素的地址。