#include<stdio.h>
#include<string.h>
void loop_move1(char *str,int n);
void loop_move2(char *str,int n);
int main()
{
char str[]="abcdef";
loop_move2(str,2);
printf("%s\n",str);
return 0;
}
// abcdef 右移2位 ef
// abcd --m ef--n
//用一个足够大的临时数组保存需要右移的2位字符串
void loop_move1(char *str,int n)
{
int m=strlen(str)-n;
char temp[100];
strcpy(temp,str+m);
strcpy(temp+n,str);
*(temp+strlen(str))='\0';
strcpy(str,temp);
}
void loop_move2(char *str,int n)
{
int m=strlen(str)-n;
char temp[100];
memcpy(temp,str+m,n);
memcpy(temp+n,str,m);
memcpy(str,temp,m+n);
}
#include<string.h>
void loop_move1(char *str,int n);
void loop_move2(char *str,int n);
int main()
{
char str[]="abcdef";
loop_move2(str,2);
printf("%s\n",str);
return 0;
}
// abcdef 右移2位 ef
// abcd --m ef--n
//用一个足够大的临时数组保存需要右移的2位字符串
void loop_move1(char *str,int n)
{
int m=strlen(str)-n;
char temp[100];
strcpy(temp,str+m);
strcpy(temp+n,str);
*(temp+strlen(str))='\0';
strcpy(str,temp);
}
void loop_move2(char *str,int n)
{
int m=strlen(str)-n;
char temp[100];
memcpy(temp,str+m,n);
memcpy(temp+n,str,m);
memcpy(str,temp,m+n);
}