为什么最后一个字符输不出来?
原题:有一字符串,包含N个字符,编写一个函数,将此字符串从第M个字符开始的全部字符复制成为另一个字符串。#include<stdio.h>
void main()
{
void stp(char *p,int m,char *r,int n);
char s[100],st2[100];
int i,m,n;
printf("请输入数组长度,和从第几个数开始复制:");
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%c",&s[i]);
stp(s,m,st2,n);
}
void stp(char *p,int m,char *r,int n)
{
int j;
char *t=r;
for(j=0;j<n-m+1;j++)
{
*r=*(p+m);
r++;p++;
}
*r='\0';
printf("%s\n",t);
}
为什么n=6,m=3时,输入abcdef却输出"cde?",而不是"cdef"