Показать сообщение отдельно

  #8  
Старый 27.12.2009, 18:03
Ra$cal
Постоянный
Регистрация: 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..
 
Ответить с цитированием