函数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;
}
这个是我写的
void strmcpy( char *t, int m, char *s )
{
int i=0;
while(t[i])
{
i++;
}
if(m<i)
s=t+m;
else *s='\0';
return ;
}
因为你这不是复制字符串,你这只是想把s的指针指向t+m,但是传进来的是形参,并没有改变main里的s指向。而且main的s是数组头指针,是char * const,指针指向无法更改。复制的话只能复制内容,不能用更改指针指向实现。