1.字符旋转的结果
//写一个函数,判断一个字符是否为另一个字符串旋转之后的字符串
//是返回1,不是返回0
2.方法一:我们可以使用字符旋转,进行一一比较。如果相等是返回1,如果不是返回0,将第一位存储起来,其他位先前相加,然后将第一位放在最后一位,进行比较,如果没有相等,那在++进行比较.
#include<stdio.h>
#include<assert.h>
//方法一
int test(char arr1[], char arr2[])
{
assert(arr1 && arr2);
int len = strlen(arr1);
for (int j = 0; j < len; j++)
{
if (arr1 != arr2)
{
char tmp = arr1[0];
int len = strlen(arr1);
for (int i = 0; i < len - 1; i++)
{
arr1[i] = arr1[i + 1];
}
arr1[len - 1] = tmp;
}
if(*arr1==*arr2)
{
return 1;
}
}
return 0;
}
int main()
{
char arr1[] = { "ABCDEF" };
char arr2[] = { "abcd" };
int ret=test(arr1, arr2);
printf("%d", ret);
return 0;
}
2.方法二:我们可以使用库函数strncat和strstr函数,第一步自身相加
例如 abcdef
abcdefabcdef
//方法二
int test(char arr1[], char arr2[])
{
int len1 = strlen(arr1);
int len2= strlen(arr2);
if (len1 != len2)
return 0;
//库函数使用
strncat(arr1, arr2,len1);
char*a=strstr(arr1, arr2);
if (a == NULL)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
char arr1[] = { "ABCDEF" };
//自己给自己追加字符串 ABCDEFABCDEF判断是否与arr2相等
char arr2[] = { "abcd" };
int ret = test(arr1, arr2);
printf("%d", ret);
return 0;
}
标签:字符,return,语言,int,len,旋转,char,arr2,arr1
From: https://blog.csdn.net/scy2429828663/article/details/141032085