C语言第四十五弹---判断字符串旋转结果

简介: C语言第四十五弹---判断字符串旋转结果

C语言实现判断字符串旋转结果

思路:使用循环,让原字符串每次旋转一个字符,并和旋转字符串进行比较,相等则停止循环并返回判断,外层循环截止没有截止,则证明不相同,则返回不同的判断。

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Same_Char(char * s1,char * s2,int len)
{
    if (strcmp(s1, s2) == 0)//没有发生旋转,直接返回1
    {
      return 1;
    }
    if (strlen(s1) != (strlen(s2)))//长度不同,直接返回-1
    {
      return -1;
    }
    for (int i = 0; i < len-1; i++)//
    {
      char tmp = *s1;//保存*s1首元素地址位置
      for (int j = 0; j < len - 1; j++)//外层循环一次内部for循环一次,完成一次头放到尾
      {
        *(s1 + j) = *(s1 + j + 1);
      }
      *(s1 + len - 1) = tmp;//把s1首字符放到最后
      if ((strcmp(s1, s2) == 0))//旋转后的s1与s2比较
      {
        return 1;
      }
    }
    return -1;
}
int main()
{
  char s1[1000] = { 0 };
  char s2[1000] = { 0 };
  printf("请输入原字符串:");
  gets(s1);
  printf("\n");
  printf("请输入旋转后字符串:");
  gets(s2);
  int len = strlen(s1);
  int ret=Same_Char(s1, s2, len);
  if (ret == 1)
  {
    printf("Same");
  }
  else
  {
    printf("NO Same");
  }
  return 0;
}
相关文章
|
1天前
|
存储 编译器 C语言
【C语言】字符与字符串---从入门到入土级详解
【C语言】字符与字符串---从入门到入土级详解
19 4
【C语言】字符与字符串---从入门到入土级详解
|
1天前
|
编译器 C语言
【C语言】strlen()函数(字符串长度计算函数)
【C语言】strlen()函数(字符串长度计算函数)
24 0
|
1天前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy
探索C语言库函数:字符串拷贝函数strcpy
21 0
|
1天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现2
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
1天前
|
C语言
每天一道C语言编程(4):字符串的逆序输出
每天一道C语言编程(4):字符串的逆序输出
5 0
|
1天前
|
算法 C语言 人工智能
|
1天前
|
C语言
C语言中 字符串和数字的相互转换
C语言中 字符串和数字的相互转换
13 1
|
1天前
|
C语言 C++
C语言利用ASCII码表统计字符串每个字符出现的次数
C语言利用ASCII码表统计字符串每个字符出现的次数
18 0
|
1天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
23 0
|
1天前
|
安全 C语言
指针与字符串:C语言中的深入探索
指针与字符串:C语言中的深入探索
17 0