
23.01.2010, 19:30
|
|
Новичок
Регистрация: 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++; }
}
}
|
|
|