
27.12.2009, 18:03
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
Код:
bool strcheck(const char* src, const char* sub){
while ( (*src == *sub) && *sub ){
src++;
sub++;
}
return *sub == 0;
}
int find_substr(const char* text, const char* sub){
const char* cur_text = text;
const char* end_text = text + strlen(text) - strlen(sub);
int position = -1;
while(cur_text++ != end_text){
if(strcheck(cur_text, sub)){
position = cur_text - text;
break;
}
}
return position;
}
int main(){
char text[] = {"123 111 345 321 654"};
char sub[] = {"655"};
int position = find_substr(text, sub);
if(position != -1){
cout << "position: " << position << ", substring = " << sub << endl;
}
else{
cout << "substring not found" << endl;
}
return 0;
}
ps: strcheck можете заменить на вызов strcmp. главное соблюдать порядок параметров - первым идет текст, вторым искомая подстрока.
Последний раз редактировалось Ra$cal; 27.12.2009 в 18:08..
|
|
|