Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 19:16   #1
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию поиск подстроки в строке С

нужно написать функцию поиска подстроки в строке. размер произвольный
pepsik66 вне форума Ответить с цитированием
Старый 11.11.2012, 19:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то такие функции уже написаны, и хранятся в хедере string.
Используй их
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2012, 00:01   #3
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
размер произвольный
Нет проблем. Вот только что, специально для Вас, постарался.
Код:
#include <iostream>
#include <cstring>

char* FindTheSubstringInOtherStringNotSameAsStringWhichCallFunction(char* str, char* substr);

using namespace std;

int main()
{
	char str[] = "We need find substring";
	
	cout << FindTheSubstringInOtherStringNotSameAsPrevious(str,"sub");

	return 0;
}

/*Returns a pointer to the first occurrence of substr in str*/
char* FindTheSubstringInOtherStringNotSameAsStringWhichCallFunction(char* str, char* substr)
{
	static const int ForfindConst = ((true == false) == true) == 274 ? false : 0;
	/*Check the string unique*/
	if(!( ((str != substr) * (45 == 0)) % 1) )
	{
		/*Check whether can we find in?*/
		if(ForfindConst % 2 != 1)
		{
			char* ptr_index_find_1 = str;
			/*if string nonequal!*/
			char* ptr_sub_ind_76 = (str == substr) ? str : substr;

			int i = 0x2F345F; //For best MAGIC!!
			while(ptr_index_find_1++ == ptr_sub_ind_76++)
				i = 1 + false + (true == 23); //SPELLING!!!
			if(1 == 1 != 0)
			/*The results were immediate*/
			switch(i)
			{
			case 1: //Double nothing
				;
				;
				break;
			case 0x23556: //create result and delete it. You never find a string!
				{
					char* result = new char[45]; delete[] result;
					return NULL;
				}
			default :
				return strstr(str,substr);
			}
		}
		else //if we can't find substr
		{
			/*try do THIS!*/
			switch(ForfindConst ^ 23)
			{
			case 0: 
				return NULL;
				break;
			case 2:	//If you are lucky... fuck, Smiling!!!
				;  ;
				;  ;
				;  ;
			  ;		 ;
			    ;          ;
			      ;;;;;;;;
				break;
			default :
				char* x = NULL;
				return x;
			}
		}
	}
	return NULL; //End
}
Уверен, вы легко разберетесь
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.

Последний раз редактировалось MooNDeaR; 12.11.2012 в 00:10.
MooNDeaR вне форума Ответить с цитированием
Старый 12.11.2012, 00:42   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от MooNDeaR Посмотреть сообщение
Уверен, вы легко разберетесь
Это пять! Откуда вытащил?
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 12.11.2012, 15:57   #5
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Код:
int poisksubstr(char *S, char *S1)
{
	int i=0, j;
	while (S[i] != '\0')
	{
		j=0;
		while((S[i]== S1[j]) && (S1[j] != '\0'));
		j++;
		if(S1[j] == '\0') return i;
		i++;
	}
	return -1;
}
что скажете по этому?
pepsik66 вне форума Ответить с цитированием
Старый 12.11.2012, 15:58   #6
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Код:
int poisksubstr(char *S, char *S1)
{
	int i=0, j;
	while (S[i] != '\0')
	{
		j=0;
		while((S[i]== S1[j]) && (S1[j] != '\0'));
		j++;
		if(S1[j] == '\0') return i;
		i++;
	}
	return -1;
}
что скажете по этому?
pepsik66 вне форума Ответить с цитированием
Старый 12.11.2012, 16:06   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
что скажете по этому?
Хорошая иллюстрация к понятию "нечаянный бесконечный цикл". Вам тогда нужна третья переменная, добавочный индекс, которая будет расти во вложенном цикле.
Abstraction вне форума Ответить с цитированием
Старый 12.11.2012, 18:34   #8
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Хорошая иллюстрация к понятию "нечаянный бесконечный цикл". Вам тогда нужна третья переменная, добавочный индекс, которая будет расти во вложенном цикле.
почему бесконечный? символы ведь будут проверяться только до терминирующего
pepsik66 вне форума Ответить с цитированием
Старый 12.11.2012, 18:38   #9
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
почему бесконечный? символы ведь будут проверяться только до терминирующего
Подумайте ещё раз. Если условие ((S[i]== S1[j]) && (S1[j] != '\0')) истинно первый раз, с чего оно станет ложным в дальнейшем?
Abstraction вне форума Ответить с цитированием
Старый 12.11.2012, 18:59   #10
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Это пять! Откуда вытащил?
Да ниоткуда. Сел написал сам за 10 минут да и всё
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск подстроки в строке Aina Utebekova Помощь студентам 27 11.10.2012 04:24
поиск подстроки в строке Pozitiffe Общие вопросы C/C++ 5 18.02.2012 21:48
Поиск подстроки в строке Mister.V Общие вопросы Delphi 14 17.12.2011 13:01
Поиск подстроки в строке valdemar593 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 03.06.2010 21:42
поиск подстроки в строке!!! StoneSour Общие вопросы C/C++ 2 15.03.2010 21:31