C++的字符串问题,有关子串在母串中的位置的

来源:百度知道 编辑:UC知道 时间:2024/07/05 14:40:55
比如母串 = "aaabbbcccaabbccaaaaaaaaabbbbbb"
子串 = "aaaaaaaaa"

返回15

这个过程应该怎么写

#include <iostream>

using namespace std;

int find( const char data[], char subdata[] )
{
int i, j;
for ( i = 0; i < strlen( data ); i++ )
{
for ( j = i; j < strlen( data ); j++ )
{
if ( subdata[ j - i ] != data[ j ] ) break;
if ( j - i == strlen( subdata ) - 1 )
{
return i;
}
}
}
return -1;
}

int main( )
{
char data[ 100 ], subdata[ 100 ];
cin >> data >> subdata;
cout << find( data, subdata );
return 0;
}

int check (string s1,string s2) //s1为母串,s2为子串
{
bool state;
state = false;
for (int i=0;i<s1.length();i++)
{
if (s1[i]==s2[0])
{
for (int m=1;m<s2.length();m++)
{
if (s1[i+m]==s2[m])
{
if (m==s2.length())
{
state = true;