Показать сообщение отдельно
Старый 10.03.2006, 14:55   #7   
Форумец
 
Аватар для MadFish
 
Сообщений: 340
Регистрация: 25.07.2002

MadFish вне форума Не в сети
Цитата:
Сообщение от dzidrop
typedef char** string; это короче массив ссылок он динамический т.к. строки не ограниченные
string* mas1=new string[w1];//массив указателей для слов первой строки
string* mas2=new string[w2];//массив указателей для слов второй строки
w1 и w2 это количество слов в первой и второй строке соответственно
Да и на конце каждого слова '\0'
Цитата:
Сообщение от dzidrop
да cl1 и cl2 это количество символов в строке с пробелами
Нет ты не правильно понял как перебирать я знаю мне необходимо разобраться с указателями на слова....
Хотя тут прикинул, что лучше всего будет написать функцию которая по заданному номеру слова (количество слов в первой строке w1 во второй w2) будет давать результатом это слово и просто с этой функцией работать в переборе. Вот терь думаю как её написать
Ну во первых
в твоем примере
mas1 и mas2 это не массив указателей для слов - это массив массивов указателей на строки!!! в данном виде чушь (ИМХО ты ошибся на одну звездочку в описании типа string)
Во вторых если хочешь перебором ну удачи тебе...Если слов действительно много то результата ждать запаришься.
Для ускорения можешь сразу выкинуть слова из ворой строки которые не начинаются ни с одного слова, и не оканчиваются ни на одно слово из первой строки, а с оставшимися работать. Варианты либо как ты и хотел тупым перебором либо конечный автомат(имхо более быстрый вариант хотя будут трудности с динамическим построением атомата). Боле пока на ум ничего не приходит.
В третьих
Что значит разобраться с указателями? Есть у тебя индекс так и вперед mas1[index] - слово из вервой строки
strcat(mas1[index1],mas1[index2]) объединение двух слов из первой строки
int strcmp( const char *string1, const char *string2 );сравнение строк.
Тебе это надо?
  Ответить с цитированием