С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.97
mister pOO
1 / 1 / 0
Регистрация: 26.11.2011
Сообщений: 33
#1

Вывести все слова, в которых есть буква "a" - C++

29.11.2011, 17:37. Просмотров 4783. Ответов 69
Метки нет (Все метки)

не могу найти ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int i=0,j=0,a=0,schet=0;
char s[50],s1[50];
     cin.getline(s,50);
             while(i<50)
{
                        if((isspace(s[i])) && (isalnum(s[i-1])))
{    
     j=i-1;schet=0;
             while((!isspace(s[j])) || (s[j]=='\n'))
{    
     j--;
                        if(s[j]=='a')
     schet++;
     }
             for(j;j<i+1;j++)
{
                        if(schet>=1)
     s1[j]=s[j];
}
 
}
    i++;
}cout<<s1<<endl;
getch();
нужно вывести все слова в которых есть буква a

Добавлено через 2 часа 30 минут
помогите пожалуйста...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все слова, в которых есть буква "a" (C++):

Найти все и вывести все слова в которых есть буква "к" - C++
дана строка (ввод с клавы) найти все и вывести все слова в которых есть буква &quot;к&quot;!!!!!!!!!!!!!!!!!!!!!!(разделители между словами точка или...

Удалить из текста все слова в которых буква "а" встречается более двух раз - C++
Все слова, в которых буква &quot;а&quot; встречается более 2-х раз, удалить из текста. Вывести полученную строку на экран, Если такой буквы нет,...

Написать программу,которая находит все слова,в которых буква "а" встречается больше чем один раз. - C++
Есть строка,которая состоит из слов,разделенных любым количеством промежутков.Написать программу,которая находит все слова,в которых буква...

Найти все слова, в которых есть двойные согласные, и заменить их символом "*" - C++
дан текст(на англ. яз). найти все слова, в которых есть двойные согласные и заменить их *.

Удалить столбцы символьной матрицы, в которых есть буква "А" - C++
И удалить все столбцы в которых есть буква &quot;А&quot;

Выяснить, есть ли в заданной строке слова, которые содержат все буквы слова "read" - C++
Помогите, пожалуйста, с кодом на с++. Задание было такое: Дано строку символов. Выяснить, есть ли в ней слова, которые содержат все...

69
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 21:02 #31
Цитата Сообщение от go Посмотреть сообщение
Thinker, глупо отказываться от стандартных функций, мотивируя это долго продолжительностью выполнение. На практике ведь, это строки максимум с 10-15 слов
В реальных задачах, НИИ и т.д. гигабайты строк

Добавлено через 1 минуту
alkagolik, так подсчитает неправильно, нам же каждый символ нужно проверить строки s, принадлежит ли он строке set
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2011, 21:05 #32
Цитата Сообщение от Thinker Посмотреть сообщение
В реальных задачах, НИИ и т.д. гигабайты строк
Вы меня не услышали
Цитата Сообщение от go Посмотреть сообщение
На практике ведь, это строки максимум с 10-15 слов, и писать ради них свою функции, и ради этого так "мудрить".
Добавлено через 26 секунд
Я говорю об авторе темы
0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.11.2011, 21:05 #33
Цитата Сообщение от alkagolik Посмотреть сообщение
непонятен смысл этой строки (47) strchr.
Цикл хитрым образом смещает указатель так, чтобы потом можно было работать сразу по 4 или 8 байт.
Цитата Сообщение от Thinker Посмотреть сообщение
Представьте ситуацию, есть строка set и строка s (тысячи, миллионы символов).
Нет строки s. Есть один символ s.
0
alkagolik
Заблокирован
29.11.2011, 21:11 #34
Цитата Сообщение от Thinker Посмотреть сообщение
alkagolik, так подсчитает неправильно, нам же каждый символ нужно проверить строки s, принадлежит ли он строке set
подкорректировал
0
fasked
29.11.2011, 21:12
  #35

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
НИИ и т.д.
А в эти заведения я вообще больше ни ногой. Хватило мне впечатлений, теперь буду избегать

1
alkagolik
Заблокирован
29.11.2011, 21:12 #36
Цитата Сообщение от fasked Посмотреть сообщение
Нет строки s. Есть один символ s
нету символа s, есть строка s и символ *s (это юмор )
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 21:14 #37
Цитата Сообщение от go Посмотреть сообщение
Я говорю об авторе темы
Про учебные задачи не спорю. я про большие объемы информации

Добавлено через 40 секунд
Цитата Сообщение от fasked Посмотреть сообщение
Нет строки s. Есть один символ s.
Ну, это нечестно так упрощать
0
alkagolik
Заблокирован
29.11.2011, 21:16 #38
Цитата Сообщение от fasked Посмотреть сообщение
Цикл хитрым образом смещает указатель так, чтобы потом можно было работать сразу по 4 или 8 байт
вы наверное не туда посмотрели. strchr.c строка 47, условие выхода из цикла.
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 21:17 #39
Цитата Сообщение от alkagolik Посмотреть сообщение
подкорректировал
Зачем так? Если символ s[i] совпал с одним из символов строки set, то дальше зачем поиски?

C
1
2
3
for (i = count = 0; s[i]; i++)
   if (strchr(set, s[i]))
      count++;
Не более
0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.11.2011, 21:21 #40
Цитата Сообщение от Thinker Посмотреть сообщение
Ну, это нечестно так упрощать
Так мы же про strchr говорим, а она принимает символ для поиска, а не строку символов. Или я что-то опять пропустил в разговоре?
Цитата Сообщение от alkagolik Посмотреть сообщение
вы наверное не туда посмотрели. strchr.c строка 47, условие выхода из цикла.
Туда-туда.
C
1
((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
Указатель выравнивается так, чтобы было удобнее и быстрее работать по 4 или 8 байт за раз. Фактически проверяется кратность адреса.
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 21:23 #41
Цитата Сообщение от fasked Посмотреть сообщение
Так мы же про strchr говорим, а она принимает символ для поиска, а не строку символов.
fasked, хорошо, по-другому, в посте 39 приведен пример использования strchr, но пример как не эффективно использовать эту функцию. Вы же не привели свой алгоритм решения задачи с set и s
0
alkagolik
Заблокирован
29.11.2011, 21:34 #42
Цитата Сообщение от Thinker Посмотреть сообщение
Зачем так? Если символ s[i] совпал с одним из символов строки set, то дальше зачем поиски?
Цитата Сообщение от Thinker Посмотреть сообщение
Представьте ситуацию, есть строка set и строка s (тысячи, миллионы символов). Ваша цель - подсчитать количество символов строки s, входящих в строку set. Ваш алгоритм? Например, set = "abc", s="abcxyzabcxyzabc". Ответ 9.
решение
C
1
2
3
4
for (int i = count = 0; i < strlen(set); ++i)
{
    count += f(s, set[i]);
}
0
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.11.2011, 21:35 #43
Цитата Сообщение от Thinker Посмотреть сообщение
хорошо, по-другому, в посте 39 приведен пример использования strchr, но пример как не эффективно использовать эту функцию.
Ну по-началу пошел бы по пути наименьшего сопротивления:
C
1
2
3
4
5
for (p = set; *p; ++p) {
   for (q = s; *q; ++q) {
      if (*q == *p) ++count;
   }
}
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.11.2011, 21:38 #44
alkagolik, моя вина, что не сказал, что set - множество символов, то есть там нет одинаковых символов.

Добавлено через 1 минуту
fasked, сложность вашего алгоритма O(mn), где m = strlen(set), n = strlen(s)
0
alkagolik
Заблокирован
29.11.2011, 21:38 #45
Цитата Сообщение от Thinker Посмотреть сообщение
alkagolik, моя вина, что не сказал, что set - множество символов, то есть там нет одинаковых символов.
так это же ничего не меняет. вы наверное запутались.
0
29.11.2011, 21:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 21:38
Привет! Вот еще темы с ответами:

Есть ли в строке слова, которые содержат все буквы слова "read" - C++
Помогите пожалуйста с заданием на си. Дано строку символов. Выяснить, есть ли в ней слова, которые содержат все буквы слова &quot;read&quot;. Если...

Вывести слова из предложения, в которых есть буква, встречающийся четыре и более раз - C++
Задачка по С++. С клавиатуры ввести предложения. Напечатать те слова из введенного предложения, в которых есть хотя бы одна буква...

Выдать строки, в которых есть слова с тремя буквами "у" - C++
Задача: Выдать строки, в которых есть слова с тремя буквами &quot;у&quot;. Уважаемые форумчане и прогеры высокого левела, помогите! Я сам не...

Ввести с клавиатуры строку, заменить в ней все буква "а" на букву "b" - C++
Здравствуйте) Вот возникла такая проблема.... не умею работать с указателями еще(( Помогите написать задачку: &quot;используя указатели,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.