字符旋转的结果(c语言)

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;
}

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值