码迷,mamicode.com
首页 > 其他好文 > 详细

3.1——字符串移位包含问题

时间:2015-07-24 12:42:38      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

字符串s1=“AABCD”

字符串s2=“CDAA”

看是s2属于S1移位后的一个子串

一种方法是:直接计算,每次移位,然后在s2移位后的结果中查找

还有一种方法是:s1+s1=AABCD AABCD

计算s2是否是s1+s1的子串

C的一个函数strstr

strstr

语法:

 

  #include <string.h>
  char *strstr( const char *str1, const char *str2 );

功能:函数返回一个指针,它指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回NULL。

C++的string的一个函数,将string类型转化为c的字符串数组

c_str

语法:

  const char *c_str();

c_str()函数返回一个指向正规C字符串的指针, 内容与本字符串相同. 

这里的返回的指针是一个const型指针,不能赋值给非const的指针

 1 #include<iostream>
 2 #include<string.h>
 3 #include<string>
 4 using namespace std;
 5 
 6 int move(string str1,string str2)
 7 {
 8     string str=str1+str1;
 9     const char* s1=str.c_str();
10     const char* s2=str2.c_str();
11 
12     if(strstr(s1,s2))
13         return 1;
14     else 
15         return 0;
16 }
17 int main()
18 {
19     string s1("AABCD");
20     string s2("CDAA");
21     cout<<move(s1,s2)<<endl;
22 }

 

3.1——字符串移位包含问题

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4672845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!