Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для frizzn

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


  1. Когда ничего не найдено, надо возвращать такое число, которое явно покажет, что ничего не найдено. Напр. -1 ( 0 - это первый символ)
  2. Никогда так не пиши:



    Код: Выделить весь код
    for(int i=0;s2[i++]!='\0';)
Т.е. должно получиться вроде такого:
Код: Выделить весь код
int Pos(const char str[], const char pattern[])
  {
  	int i,j,k;
  	for (i = 0; str[i] != '\0'; ++i)
  	{
  		if (str[i] == pattern[0]) 
  		{
 			// Сравниваем str и pattern пока они равны и не закончились
 			for (j=i+1,k=1; str[j] == pattern[k] && pattern[k] != '\0'; ++k, ++j)
  				;
 			// Если досравнивались до того, что pattern закончился, а наши
 			// строки до сих пор равны - значит мы нашли! Возвращаем позицию.
  			if (pattern[k] == '\0')
  				return i;
  		}
  	}
  	// Не нашли :(
  	return -1;
  }

-------
Здесь могла быть ваша реклама


Отправлено: 14:55, 20-01-2005 | #26