例如:给定s1 = AABCD和s2 = BCDAA,返回1
给定s1 = abcd和s2 = ACBD,返回0.

AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA

第一种:通过其中一个字符串向左移动确定第二个字符串

#include<stdio.h>
#include<string.h>void left_move(char *str, int k)
{while (k != 0){char *cur = str;//必须需要另一个指针存储首地址char tmp=*cur;while ((*(cur+1)) != '\0'){*cur = *(cur + 1);cur++;}*(cur) = tmp;k--;}
}
int Judge_string(char *str, const char *p)//判断函数
{int i;if (strlen(str) != strlen(p)){return 0;}for (i = 1; i <= strlen(str); i++){left_move(str,1);if (strcmp(str, p)==0)//strcmp函数判断str字符串是否与p字符串相同{return 1;}}return 0;
}
int main()
{char str[] = "abcd";char str1[] = "cdab";int ret = Judge_string(str, str1);if (0 == ret){printf("str1不是str旋转后得到的!\n");}else{printf("str1是str旋转后得到的!\n");}system("pause");return 0;
}

第二种:通过拼接字符串,然后再字符串中找另一个字符串(strstr函数)

#include<stdio.h>
#include<string.h>int Judge_string(char *str, char *p)
{if (strlen(str) != strlen(p)){return 0;}//拼接字符串,strncat(a,b,n)把b字符串中的n个元素拼接给a字符串,//所得字符串名字为astrncat(str, str, strlen(str));printf("%s",str);//strstr(a,b)判断a中是否含有b字符串,没有returnNULL,//有return  a字符串中遇到b字符串之后所有字符//例如:a:abcdefgh     b:def      return  defghif (strstr(str, p) == NULL){return 0;}else{return 1;}}
int main()
{char str[20] = "abcd";//数组必须要足够大char str1[] = "bcde";int ret = Judge_string(str, str1);if (0 == ret){printf("str1不是str旋转后得到的!\n");}else{printf("str1是str旋转后得到的!\n");}system("pause");return 0;
}

转载于:https://blog.51cto.com/14233078/2385440

两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)...相关推荐

  1. 两种方法判断是否为移动端访问,跳转到对应wap页面

    随着移动互联网的迅猛发展,越来越多的用户选择使用移动端浏览器访问网页.当用户访问一个网站的pc端页面的时候,往往是非常影响用户体验的.我们希望当用户使用移动端浏览器访问我们的pc端网站的时候,自动跳转 ...

  2. 用两种方法判断男性女性的存储过程

    昨天有一朋友问我了这个问题,题目如下:创建一个名为CheckGender的存储过程,该过程接受一个名称作为其参数并检查名称的前缀为Ms. 还是Mr.如果前缀为Ms.则显示"你输入的是女性的名 ...

  3. 【一雪前耻!】两种方法判断大小端模式

    废话不多说,直接上代码. 法一:指针法 #include <stdio.h>int main(){int a = 1;char p = *((char *) &a); ///< ...

  4. 两种方法判断有向图是否有环【DFS】【拓扑排序】

    方法1:DFS判断有向图是否有环 对一个节点u进行DFS,判断是否能从u回到自己这个节点,即是否存在u到u的回路. color数组代表每个节点的状态 -1代表还没访问,0代表正在被访问,1代表访问结束 ...

  5. python比较两个二进制文件_python三种方法判断文件是否为二进制文件

    两种方法判断文件是否为二进制文件,最准确的就是把这两种方法结合起来. (1)方法一: 它首先检查文件是否以BOM开始,如果不在初始8192字节内查找零字节: import codecs file_pa ...

  6. bufferedreader读取中文乱码_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  7. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  8. Java运行非Web的Springboot项目(测试类或启动主类两种方法)

    Java运行非Web的Springboot项目(测试类或启动主类两种方法) 前言 一.创建打开一个Springboot项目 二.运行项目 1.Test测试类运行 2.启动主类运行 三.持续运行不停止( ...

  9. 判断一个字符串是否为数字字符串(两种方法)

    第一种方法: //正则表达式判断是否是数字字符串(可判断正数,负数和小数)public boolean isNumberString(String str) {java.util.regex.Patt ...

最新文章

  1. Linux网络 - 数据包的发送过程
  2. (C#)如何利用Graphics画出一幅图表
  3. java向上造型的优点_老榆木家具适合什么装修风格?老榆木家具有哪些优点
  4. java高并发(十九)死锁、spring线程安全
  5. 51 nod 1097 拼成最小的数 思路:字符串排序
  6. 一个略显复杂的transformation算子_distinct
  7. ClickHouse分布式集群部署
  8. 编程问题难解决,学会提问是关键!
  9. 数据结构——最短路径算法之floyd算法
  10. shell脚本打开一个新终端并运行指定脚本
  11. 携程微服务框架实践及思考
  12. 计算机硬盘出现过哪些问题,出现这几种征兆, 说明您的电脑机械硬盘可能就有问题了!...
  13. windows 勾子简介
  14. MySQL 开发实践
  15. 机器人仿真技术学习笔记(一)
  16. C++ 从入门到入土(English Version) Section 1:Gates, Circuits and Boolean Algebra
  17. 14. 调整数组顺序是奇数位于偶数前(C++版本)
  18. IBM heapAnalyzer分析dump文件
  19. 用overleaf 写 计算机学报 格式的论文
  20. 为什么4G、5G又称为蜂窝网络?跟蜂窝有什么关系?

热门文章

  1. notepad 如何运行php,notepad怎么运行c
  2. php隐藏文件链接,php隐藏文件实际下载地址的方法
  3. 马来西亚国立大学的计算机,要拿到马来西亚国立大学的 offer难吗?
  4. oracle catalog start with,rman中进行catalog start with 无法注册部分备份文件
  5. 月结 sap_乡村基SAP:领跑中式快餐数字化转型
  6. 做AI项目,找有三AI,200+研发人员为你服务
  7. 【深度学习图像项目实战-从入门到上线1】怎样学会科学的调研并启动一个项目...
  8. 速卖通开店条件和流程最新版
  9. NSIS 的 Modern UI 教程(二)
  10. 每天学习一点,坚持学习!!