m0_63806909 2021-12-25 19:30 采纳率: 90%
浏览 420
已结题

输入一个长度不大于30的字符串,将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针方法处理字符串。输出行末无多余空格

//问题在代码最后面
#include<stdio.h>
#include<string.h>
int copy(char *p1,char *p2,int m);
int main()
{
char str1[30],str2[30];
gets(str1);
int m;
scanf("%d",&m);
if(strlen(str1)>m)
{
copy(str1,str2,m);
printf("%s",str2);
}
return 0;
}
int copy(char *p1,char *p2,int m)
{
int n;
n=0;
for(n=0;n<m-1;n++)
{
p1++;
}
while(*p1!='\0')
{
*p2=*p1;
p1++;
p2++;
}
p2='\0';
}
/我想问一下为什么最后要加一个p='\0';呢?(不加上去不对)这有什么用呢?谢谢回答
/

  • 写回答

1条回答 默认 最新

  • [PE]经典八炮 2021-12-25 19:41
    关注

    ,,,,。是字符串结束符

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月25日