- 215 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 14:45:55 ]
- 先頭2バイトが登録されていたら完全一致調べる方法。
#include <iostream> #include <vector> #include <string> using namespace std; #define str2int(x) *(unsigned short int*)x int main(){ unsigned int n, k; vector<unsigned char> chk(1<<16, 0); vector<string> findstr; findstr.push_back("HTML");findstr.push_back("html");findstr.push_back("?xml");findstr.push_back("?XML");findstr.push_back("<body");findstr.push_back("<BODY"); for(n=0; n<findstr.size(); n++) chk[ str2int( &findstr[n][0] ) ]=1; string s = "nbtgfhsdfmrjgijmhimhtmljdtiohbjfguhndug" ; char findflg=0; for(k=0; k < s.size()-1; k++) if (chk[ str2int( &s[k] ) ] ==1 ) for(n=0; n < findstr.size(); n++ ) if( memcmp( &s[k], &findstr[n][0], findstr[n].size() )==0 ) { findflg=1; goto end; } end: if(findflg) cout<<k+1<<" moji me de hit\n"; else cout<< "not found\n"; }
|

|