编程之美—字符串移位包含问题
来源:互联网 发布:网络侵权责任纠纷 编辑:程序博客网 时间:2024/05/23 23:44
验证字符串s2通过移位能否包含字符串s1。
(1)逐一移位,验证是否包含
(2)只需验证s2s2是否包含s1即可。 s2每隔strlen(s2)次移位后又回到s2,相当于移位后的字符串在 s2~s2s2之间。
代码实现如下:
// stringContain.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;//字符串s2能否被字符串s1移位所包含bool StrContain(char *s1,char *s2){if(strstr(s2,s1)) return true; //考虑不移位的情形int len=strlen(s2);for(int i=0;i<len;i++){ char temp=s2[0];for(int j=0;j<len-1;j++){ s2[j]=s2[j+1];}s2[len-1]=temp;if(strstr(s2,s1)) //左移移位后进行条件判断{ return true;}}return false;}//第二种方法bool StrContain1(char *s1,char *s){if(strstr(s,s1)) return true;}//字符串连接函数void Strcon(char *s1,char *s2){char *p;for(p=s1;'\0'!=*p;p++); //找到s1字符串尾部for(int i=0;'\0'!=s2[i];i++,p++){ *p=s2[i];}*p='\0';}int _tmain(int argc, _TCHAR* argv[]){char s1[]="CDAA"; char s2[]="AABCD"; char *s3="AABCD";Strcon(s2,s3);cout<<StrContain(s1,s2)<<endl;cout<<StrContain1(s1,s2)<<endl;return 0;}
结果:
此处要注意指向常量区德指针,即指针地址分配为静态分配,只能读不能写。
因而上面s1和s2字符换采用了栈区分配地址,可以改写内容。
注意strcat(cha *s1, const char *s2),第二个参数为指向常量区德字符串指针。
0 0
- 编程之美---->字符串移位包含问题
- 编程之美——字符串移位包含问题
- 编程之美——3.1字符串移位包含问题
- 编程之美——字符串移位包含问题
- 编程之美—字符串移位包含问题
- 编程之美3.1—字符串移位包含问题
- 编程之美之字符串移位包含问题
- 编程之美之字符串移位包含的问题
- 《编程之美3.1:字符串移位包含问题》
- 《编程之美》3.1 字符串移位包含的问题
- 编程之美-3.1字符串移位包含问题
- 编程之美3.1 字符串移位包含问题
- 字符串移位包含问题(编程之美3.1)
- 编程之美--字符串循环移位包含问题
- [编程之美3.1]字符串移位包含的问题
- 字符串移位包含的问题(编程之美)
- 【编程之美】字符串移位包含的问题
- 编程之美3.1 字符串移位包含问题
- 黑马程序员_Java基础_前期准备01_3.3
- Cygwin源
- 文件存储
- 黑马程序员_Java基础_前期准备01_3.4
- Spark1.0.0 新特性
- 编程之美—字符串移位包含问题
- Reflector反编译软件激活和使用
- uva 10285 Longest Run on a Snowboard
- 数据挖掘考试重点(条理版)
- override作为c++保留字的用发
- 算法(时间复杂度为O(nlgk)的k有序链(从小到大)表合并为一个有序链表
- poj1141
- Easyui开发部门管理模块_部分模块code.jsp
- CareerCup chapter 3 Stacks and Queues