#include<assert.h>
#include<string.h>
char *strcpy(char*strDest,const char*strSrc)
{
assert(strDest!=NULL&&strSrc!=NULL);
char * addr = strDest;
while( *strSrc!='\0')
*strDest++ = *strSrc++;
*strDest = '\0';
return addr;
}
//循环移动steps位
void LoopMove(char *pStr,int steps)
{
int n = strlen(pStr)-steps;
char temp[1000];
strcpy(temp,pStr+n);
strcpy(temp+steps,pStr);
*(temp+strlen(pStr)) = '\0';
strcpy(pStr,temp);
}
//循环移动方式2
void LoopMove2(char *pStr,int steps)
{
int n = strlen(pStr)-steps;
char temp[1000];
memcpy(temp,pStr+n,steps);
//memcpy(temp+steps,pStr,n);
//memcpy(pStr,temp,strlen(temp));
memcpy(pStr+steps,pStr,n);
memcpy(pStr,temp,steps);
}
int main()
{ char a[] = "123456789";
//char b[]="123";
//printf("%d\n",strlen(strcpy(b,a)));
//printf("%s,%s\n",b,a);
printf("%s\n",a);
//LoopMove(a,3);
LoopMove2(a,4);
printf("%s\n",a);
return 0;
}