//不支持CompareMethod参数
int instr(const char* str, const char* find, int pos=0){
int n=strlen(str);
int m=strlen(find);
int i=pos;
int j;
for (i=pos; i<n-m+1; i++){
for (j=0; j<m; j++){
if (str[i+j]!=find[j]) break;
}
if (j==m) return i;
}
return -1;
}
//支持CompareMethod参数
int instr(const char* str, const char* find, int pos=0,bool cmpText = false){
int n=strlen(str);
int m=strlen(find);
int i=pos;
int j;
if (m==0) return n+1;
if (cmpText){
for (; i<n-m+1; i++){
for (j=0; j<m; j++){
if (str[i+j]!=find[j]){
if (str[i+j]-find[j]==32){
if (find[j]<'A' || find[j]>'Z') break;
}else if (find[j]-str[i+j]==32){
if (find[j]<'a' || find[j]>'a') break;
}else{
break;
}
}
}
if (j==m) return i;
}
}else{
for (; i<n-m+1; i++){
for (j=0; j<m; j++){
if (str[i+j]!=find[j]) break;
}
if (j==m) return i;
}
}
return -1;
}
int instrrev(const char* str, const char* find, int pos=-1, bool cmpText = false){
int n=strlen(str);
int m=strlen(find);
int i=(pos==-1)?n:pos;
int j;
if (m==0) return n+1;
if (cmpText){
for (; i>m-1; i--){
for (j=m-1; j>-1; j--){
if (str[i+j]!=find[j]){
if (str[i+j]-find[j]==32){
if (find[j]<'A' || find[j]>'Z') break;
}else if (find[j]-str[i+j]==32){
if (find[j]<'a' || find[j]>'a') break;
}else{
break;
}
}
}
if (j==-1) return i;
}
}else{
for (; i>m-1; i--){
for (j=m-1; j>-1; j--){
if (str[i+j]!=find[j]) break;
}
if (j==-1) return i;
}
}
return -1;
}