Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Отладка функции


Автор: mus 31.5.2005, 20:59
Господа, трабл в отладке функции на Borland C, прошу помочь.
Функция разбивает строку S на слова из набора всеми возможными способами:

Код

void perebor(char *s, char **a,int n)
{
  char str1[50],str2[50],vixod[100],str[50];
  char *tmp;
  int i,j,k;
  /*for(i=0;i<n;i++)
  puts(a[i]);
  puts(s); */
  if (s==0) printf("s==0"); //return;
  else
  {   for(i=0;i<n;i++)
      {
    if(strcmp(s,a[i])==0)
    {
        strcpy(vixod,s);
        puts(vixod);
    }
    else
    {
        for(j=1;j<strlen(s);j++)
        {
            strncpy(str1, s, j);
            str1[j]=NULL;
            *tmp=s[j];
            strcpy(str2,tmp);
            for(k=0;k<n;k++)
            {
                if(strcmp(str1,s)==0)
                printf("strcmp(str1,s)==0)"); //return;
                else
                    if (strcmp(str1,a[k])==0)
                    {
                        strcpy(str,str1);
                        puts(str);
                        perebor(str2,a,n);
                    }
                    else
                    {
                        strcat(str1,str2);
                        perebor(str1,a,n);
                    }
            }
        }
    }
      }
  }
}

Добавлено @ 21:00
Меня выбрасывает из Сишного редактора...

Автор: bel_nikita 31.5.2005, 23:16
mus
Может проще, подробнее объяснишь, что такое
Цитата
Функция разбивает строку S на слова из набора всеми возможными способами
Как именно нужно разбить?

Автор: mus 1.6.2005, 13:58
Разбить строку S на слова набора всеми возможными способами
Пример: S=ABBC

A[1]=A, A[2]=AB, A[3]=BC, A[4]=BBC, A[5]=H, A[6]=B

S = A B BC

= A BBC

= AB BC

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)