方法一:将字符串1与字符串1连接,再判断字符串2是否为连接后的字符串1的子字符串,可以使用库函数实现。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void revovle(char *str1,char *str2)
{
int len1=strlen(str1);
int len2=strlen(str2);
strncat(str1,str1,6);
if(strstr(str1,str2)!=NULL && len1==len2)
printf("是旋转字符!\n");
else
printf("不是旋转字符!\n");
}
int main()
{
char a[20]="abcdef";
char b[]="bcdefa";
revovle(a,b);
system("pause");
return 0;
}
方法二:每一次旋转一个字符,并进行比较。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int revovle(char *str1,char *str2)
{
int len=strlen(str1);
int i,j;
char temp;
for(i=0;i<len;i++)
{
temp=str1[0];
for(j=0;j<len-1;j++)
{
str1[j]=str1[j+1];
}
str1[len-1]=temp;
if(strcmp(str1,str2)==0)
{
printf("是旋转字符!\n");
return 0;
}
}
printf("不是旋转字符!\n");
return 0;
}
int main()
{
char a[]="abcdef";
char b[]="bcdefa";
revovle(a,b);
system("pause");
return 0;
}