例如:ABDJKSLS,输入平移的个数2,平移的结果为DJKSLSAB
方法一:
/*将字符串的前n个值平移到字符串的后面*/
#include <stdio.h>
#include <string.h>
void move(char *str,int m)
{
int i = 0;
int j = 0;
char temp;
int len = strlen(str);
for(i = 0;i < m;i++)
{
temp = str[0];
for(j = 1;j < len;j++)
{
str[j-1] = str[j];
}
str[len-1] = temp;
}
}
int main()
{
char str[100] = {0};
int m = 0;
printf("please input string:\n");
scanf("%s",str);
printf("please input m:\n");
scanf("%d",&m);
move(str,m);
printf("move result:%s\n",str);
return 0;
}
方法二:
/*将字符串的前n个值平移到字符串的后面*/
#include <stdio.h>
#include <string.h>
void move(char *str,int m,char *result)
{
int len = strlen(str);
int i = 0;
char *a = str;
int k = 0;
for(i = m;i < len;i++)
{
result[k++]=str[i];
}
str = a;
for(i = 0;i < m;i++)
{
result[k++] = str[i];
}
result[k] = '\0';
}
int main()
{
char str[100] = {0};
char result[100] = {0};
int m = 0;
printf("please input string:\n");
scanf("%s",str);
printf("please input m:\n");
scanf("%d",&m);
move(str,m,result);
printf("move result:%s\n",result);
return 0;
}