1 / 1 / 1
Регистрация: 26.11.2011
Сообщений: 33
|
||||||
1 | ||||||
Вывести все слова, в которых есть буква "a"29.11.2011, 17:37. Показов 10334. Ответов 69
Метки нет Все метки)
(
не могу найти ошибку
Добавлено через 2 часа 30 минут помогите пожалуйста...
0
|
|
29.11.2011, 17:37 | |
Ответы с готовыми решениями:
69
Найти все и вывести все слова в которых есть буква "к" Вывести все слова, в которых первая буква "а" Все слова, в которых буква "а" встречается более 2х раз, удалить из текста. Вывести полученную строку на экран Удалить из текста все слова в которых буква "а" встречается более двух раз |
![]() |
||||||||||||||||
29.11.2011, 17:51 | 3 | |||||||||||||||
http://liveworkspace.org/code/... 0bc2e541d1
0
|
Заблокирован
|
||||||
29.11.2011, 18:36 | 4 | |||||
как такая альтернатива?
0
|
Каратель
![]() |
|
29.11.2011, 18:52 | 5 |
0
|
![]() |
|
29.11.2011, 18:56 | 8 |
fasked, функция strchr не очень быстрая и зависит от длины строки (первый параметр), функция strtok содержит внутри себя strchr, поэтому тоже не очень быстрая функция + портит строку. Но это вы сами прекрасно знаете, просто для тех, кому это интересно, реально писать без strchr и strtok свои функции в разы быстрее, при определенных раскладах и в десятки раз быстрее
![]()
0
|
Заблокирован
|
||||||
29.11.2011, 19:18 | 9 | |||||
Thinker, вполне разделяю, только боюсь что такая реализация вызовет сомнения.
0
|
![]() |
|
29.11.2011, 19:31 | 14 |
Проверьте на скорость, если не верите. Если ваша функция хотя бы по времени столько же будет работать, то это уже хорошо.
Добавлено через 2 минуты В смысле? ваша функция в среднем случае пробегает по строке s примерно strlen(s)/2. Функция strchr построена по такому же принципу.
0
|
Заблокирован
|
||||||
29.11.2011, 19:54 | 15 | |||||
немного не понял, вы предлагаете за один проход найти сразу все символы? Насчет вставок асма не знаю как там они все согласованы с ОСапи и компиляторами разных версий, а в целом можно и так реализовать
0
|
![]() |
||||||
29.11.2011, 20:15 | 16 | |||||
alkagolik, рекурсия не решает проблему. У вас хорошая функция, но я бы в одну строчку написал:
0
|
Заблокирован
|
|
29.11.2011, 20:21 | 17 |
Thinker, я просто принципиально не придерживаюсь такого стиля. На мой взгляд это нечитабельно (не в данном случае, а в более длинных сочетаниях) и просто обязано содержать длинный комментарий, но это имхо. В принципе тут смотря какой подход к задаче выбрать. Думаю что нет смысла считать количество нужных символов, а потом делить на слова (опять же используя поиск пробела, знаков препинания в качестве разделителя). Правильнее будет найти символ и построить от него слово, это опять же имхо. Кстати знаки препинания я как раз и не учел в программе.
0
|
![]() |
|||||||||||
29.11.2011, 20:24 | 19 | ||||||||||
Функция strchr очень быстрая.
glibc strchr
-- Function: char * strchr (const char *STRING, int C) The `strchr' function finds the first occurrence of the character C (converted to a `char') in the null-terminated string beginning at STRING. The return value is a pointer to the located character, or a null pointer if no match was found. For example, strchr ("hello, world", 'l') => "llo, world" strchr ("hello, world", '?') => NULL The terminating null character is considered to be part of the string, so you can use this function get a pointer to the end of a string by specifying a null character as the value of the C argument. It would be better (but less portable) to use `strchrnul' in this case, though.
Было бы глупо иметь зависимость от длины строки, если надо найти лишь первое совпадение. А вот и неправда. Код
fasked@k50id:~/src/glibc/string> cat strtok.c | grep strchr fasked@k50id:~/src/glibc/string> glibc strtok
0
|
![]() |
|
29.11.2011, 20:26 | 20 |
Это вы о моей рекурсивной функции? Тогда дело вкуса
![]()
0
|
29.11.2011, 20:26 | |
Помогаю со студенческими работами здесь
20
Написать программу,которая находит все слова,в которых буква "а" встречается больше чем один раз. Найти все слова, в которых есть двойные согласные, и заменить их символом "*"
Найти слова в которых буква "т" встречается чаще чем в остальних Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |