旋转字符及其判断

来源:互联网 发布:淘宝店招怎么设置 编辑:程序博客网 时间:2024/05/22 13:30

旋转字符


# include<stdio.h>

void rotation_left(char arr[20],int k,int sz)
{
char tem[20];
int i=0,j=0,l=sz-k,a=0;
for(i=0;i<k;i++)
{
tem[i]=arr[i];//将arr从0到k的字符一一赋给tem


}
for(j=0;j<l;j++)
{
arr[j]=arr[j+k];//将k开始往后的字符一一前挪
}
for(l=sz-k,a=0;l<sz;l++,a++)
{
arr[l]=tem[a];//将由arr赋给tem的字符一一放在arr的后面
}
}
int main()
{
char arr[20];
int k=0;
int sz=0;
scanf("%s %d",&arr,&k);
sz=strlen(arr);
rotation_left(arr,k,sz);
printf("%s\n",arr);
return 0;
}

旋转字符的判断
# include<stdio.h>
int rotation_left_right(char arr1[20],char arr2[20],int sz)
{
int i=0,j=0,k=0;
for(i=0;i<sz;i++)
{
if((i>0)&&(arr1[i]=arr2[1]))//寻找arr1中与arr2的第一个字符相同的字符
{
for(i,j=0;i<sz;j++,i++)//判断arr1自i开始的字符是否与arr2从第一个到sz-i个字符一一相同
{
if(arr1[i]!=arr2[j])
break;
}
if(i=sz)
{
for(j,k=0;j<sz;j++,k++)//判断arr2从j开始的字符是否与arr1从第0到i的字符一一相同
{
if(arr1[k]!=arr2[j])
break;

}
}
}
if(j=sz)
return 1;
else
return 0;
}
}
int main()
{
char arr1[20],arr2[20];
int sz=0,sz2=0,a=0;
scanf("%s %s",&arr1,&arr2);
sz=strlen(arr1);
sz2=strlen(arr2);;
if(sz==sz2)
{
a=rotation_left_right( arr1,arr2,sz);
if(a=1)
printf("arr2是arr1旋转后的字符串");

else
printf("arr2不是arr1旋转后的字符串");


}
else
printf("arr2不是arr1旋转后的字符串");
return 0;


}
1 0