IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Поиск слов в строке, C
сообщение
Сообщение #1


Гость






Помогите выполнить задание. Оно собственно следующее.... дана строка длины до 255 с пробелами. Найти все такие слова которые составлены из тех же букв что и первое, т.е. буквы должны быть темеже, но встречаться могут чаще одного раза, а также в счёт регистр, т.е. заглавная буква или нет - они считаются разными МАМА МАМАМААА - второе слово нас устривает, т.к. состоит из тех же букв..... а вот если скажем а - маленькое, то не одно и тоже... Писать на С, компилятор Visual Studio
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Visual Studio не держу, на Turbo C работает:

#include <string.h>
#include <stdio.h>

int main() {

char s[255], first[20], *p, *pp;
int i;

gets(s);
/*
Функция strtok выделяет из заданной строки лексемы, разделенные одним из
символов-разделителей, заданных вторым параметром
*/
p = strtok(s, " ");
// Выделили первую лексему (первое слово), и скопировали его в переменную first
strcpy(first, p);

// Пока строка не закончится ...
while(p) {
// ... выделять очередное слово ...
p = strtok(NULL, " ");
// ... и если оно существует ...
if(p) {
/*
каждый символ этого слова проверять на входжение в первое слово
(функция strchr вернет NULL если символ НЕ был найден в строке, иначе вернется адрес символа)

Если strchr вернула адрес, а не NULL, то увеличить счетчик букв, которые совпали с
буквой из первого слова
*/
for(pp = p, i = 0; *pp; pp++) if(strchr(first, *pp)) i++;

/*
если число совпавших букв равно длине самого слова,
значит, ВСЕ буквы совпали - печатаем...
*/
if(i == strlen(p)) puts(p);
}
}
return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






огромное спасибо, студия не ругается....
не мог бы ты ещё объяснить как она написана....?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






и если можно за что какой массив отвечает. Спасибо заранее
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






хотел спросить, а что если условие было бы, что слово должно состоять из всех букв первого слова, т.е. все буквы должны обязательно встречаться как тогда следует и что именно изменить?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Такая задача решалась ТУТ

Оно ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Да похожи, спасибо, буду знать альтернативные решения, но всё таки объясните хоть кт о- нить как выполнено это решение что за что отвечает и что делает....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Читай комментарии, я добавил...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.09.2020 13:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name