例如:ABDJKSLS,输入平移的个数2,平移的结果为DJKSLSAB。
1、
#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;
}
2、
#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;
}
本文介绍了一种实现字符串平移的算法,并提供了两种不同的C语言实现方法。第一种方法通过循环将字符串逐位向前移动指定位置;第二种方法创建一个新的字符串来存放平移后的结果。这两种方法都适用于需要对字符串进行循环移动的场景。
1601

被折叠的 条评论
为什么被折叠?



