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

  #7  
Старый 23.01.2010, 19:30
XimiK69
Новичок
Регистрация: 02.01.2010
Сообщений: 26
Провел на форуме:
33560

Репутация: 15
По умолчанию

Цитата:
Сообщение от STIFFmaster  
Помогите найти ошибку. Программа должна искать количество вхождений подстроки в строку, а вместо нужного числа всегда выводит только 0
Код:
#include <iostream.h>
void main()
{
	char stroka[30];
	char podstroka[6];
	int ch=0;
	cout<<"vvedite stroky ";
	cin.getline(stroka, 30);
	cout<<"\nvvedite iskomyjy podstroky ";
	cin.getline(podstroka,6);
	for(int i=0; i<25; i++)
	  {    
		   if ((stroka[i]==podstroka[0]) 
		   && (stroka[i+1]==podstroka[1]) 
		   && (stroka[i+2]==podstroka[2]) 
		   && (stroka[i+3]==podstroka[3])
		   && (stroka[i+4]==podstroka[4])
		   && (stroka[i+5]==podstroka[5]) )
		   ch++;
		   }
		   
	cout<<ch;
}
Или я задание не понял или очень странный код проверки у тебя
Есть стандартная функция проверки......
Код:
	for(int i=0; stroka[i] != '\0'; i++)
	{
		if(stroka[i] == podstroka[0])
		{
			bool fl = true;
			for(int j = 0; podstroka[j] != '\0'; j++)
			{
				if(stroka[i + j] != podstroka[j]) { fl = false; break; }
			}
			if(fl) { ch++; }
		}
	}
 
Ответить с цитированием