大話のデータ構造——串刺しの検索

864 ワード

#include<iostream>

#include<string>

using namespace std;



//T    ,   S   pos         T     

//             ,    0

int string_compare(string A,int i,string B);

int Index(string S,string T,int pos)

{

	int S_size,T_size;

	int i;

	S_size=S.size();

	T_size=T.size();



	if(T_size>S_size-pos)

		return 0;

	for(i=pos-1;i<=S_size-1-T_size;i++)

	{

		if(string_compare(S,i,T)==1)

			return i;

	}

	return 0;

}



//  A  i    , B    ,     1,      0

int string_compare(string A,int i,string B)

{

	if((A.size()-i)<B.size())

		return 0;

	int dex=1;

	for(int j=0;j<B.size();j++)

	{

		if(A[i+j]!=B[j])

		{dex=0;break;}

	}

	return dex;	

}



int main()

{



	string A="asdfghj";

	string B="ghk";

	cout<<Index(A,B,2)<<endl;



	system("pause");

	return 1;



}