G
Guest
Код:
//Удаляет из строки ss все подстроки s
char *F1(char *ss, char *s)
{
int n=strlen(ss)+1; //длина строки
int m=strlen(s); //длина подстроки
bool key;
char *sss=new char[n];
int k=0;
for(int i=0; i<n; i++)
{
if(ss[i]==s[0]) //если i-символ строки == [0]-символу подстроки
{
key=true; //подстрока, наверное, найдена
for(int j=1; j<m; j++)
{
if(ss[i+j]!=s[j]) //если i+j-символ строки != [j]-символу подстроки
{
key=false; //подстрока не найдена
break;
}
}
if(key==false) //если подстрока не найдена
{
sss[k]=ss[i]; //запись i-символа ss в строку sss
k++; //увеличение индекса строки sss
}
else i+=m-1;
}
else
{
sss[k]=ss[i];
k++;
}
}
delete [] sss;
return sss;
}
void main()
{
char *s1="help help help help help help";
char *s2="lp";
for(long i=0; i<1000000; i++)//цикл для определения времени работы функции
F1(s1,s2);
}