Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
#1

Строки, нужна подсказка. - C++

31.05.2011, 18:53. Просмотров 459. Ответов 6
Метки нет (Все метки)

Дана строка, состоящая из слов, разделенных любым количеством пробелов. Напишите программу, которая находит все слова, в которых буква ”а” встречается более чем один раз.

Накодил такую штуку
Код
#include <iostream.h>
#include <string.h>
void main()
{
	char str[100];
	cin>>str;
	char *ps = strstr(str, "a");
if (ps != NULL) 
   cout << ps;
else 
  cout << "Символ нигде не встречается!";
}
но это же не совсем то что надо. Подскажите, куда дальше двигаться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 18:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки, нужна подсказка. (C++):

While(i<=n) b[i]=a[i] i++. Нужна подсказка( - C++
char b; char* e={&quot;bin&quot;,&quot;txt&quot;}; int i=0; while(i&lt;=2) { b=e; i++; } cout&lt;&lt;b; На выходе...

Нужна подсказка! - C++
задание звучит так: После завершения шахматной партии, на доске осталось какое-то количество фигур. Матрица desk содержит информацию о...

нужна подсказка - C++
What is the purpose of the curly braces in Line 24 of mystring.h? size_t length( ) const { return current_length; }

Нужна подсказка - C++
Обьясните пожалуйста что не так. При компилирование выводит &quot;&quot;Vam bilshe nizh sto rokiv&quot;&quot; ...

нужна подсказка - C++
int main ( ) { char str = &quot;0123456789&quot;; char str1 = &quot;0123456789&quot;; str1 = 'c'; cout &lt;&lt; str &lt;&lt; endl; system(&quot;pause&quot;); ...

Нужна подсказка в отладке - C++
Здравствуйте! Не знаю как правильно сравнить вводимое число типа double (number_1) с символом '|' (29-30 строчка). Если ввести в формате |m...

6
OstapBender
583 / 522 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
31.05.2011, 18:59 #2
вот лови

читать строку надо cin.getline(str,100);

разбить строку на куски можно strtok()-ом
http://www.cplusplus.com/reference/c...string/strtok/

полученные куски хоть strchr и strstr парси, но тут можно тупо в цикле
C++
1
2
3
4
for (int  i=0, c=0; i<strlen(кусок),c<2; i++)
if (кусок[i]=='a') c++;
 
if (c>=2) cout << кусок << '\n';
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
31.05.2011, 19:04 #3
Цитата Сообщение от f1xmAn Посмотреть сообщение
Дана строка, состоящая из слов, разделенных любым количеством пробелов. Напишите программу, которая находит все слова, в которых буква ”а” встречается более чем один раз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
#include <cstdio>
 
using namespace std;
 
size_t cnt(const char *s, const char c){
  size_t ct = 0;
  for(; *s; ++s)
    if(*s == c) ++ct;
  return ct;
}
 
int main(){
  char str[BUFSIZ], *p;
  cin.getline(str, BUFSIZ);
  for(p = strtok(str, " "); p; p = strtok(NULL, " "))
    if(cnt(p, 'a') >= 2)
      cout << p << ' ';
  return 0;
}
1
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
31.05.2011, 19:48  [ТС] #4
Спасибо большое, вы реально помогли.
0
AmaTeRaTsu
94 / 27 / 2
Регистрация: 31.05.2011
Сообщений: 123
31.05.2011, 21:41 #5
asics, спасибо большое вам! Мне тоже ваш пример пригодился, чуточку переделал и все
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
31.05.2011, 23:24 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
 
int main()
{
    std::string string;
    std::getline(std::cin, string);
    const char ch = 'a';
    std::istringstream ist(string); 
    size_t count = 0;
    while(ist >> string)
       if(std::count(string.begin(), string.end(), ch) > 1)
          std::cout << string << '\n';
}
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
31.05.2011, 23:41 #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string.h>
#include <stdio.h>
 
int main()
{
    char str[256];
    char* token;
    char* pch;
 
    scanf("%255[^\n]", str);
 
    for(token = strtok(str, " "); token != NULL; token = strtok(NULL, " "))
        if((pch = strchr(token, 'a')) && strchr(pch + 1, 'a')) puts(token);
 
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 23:41
Привет! Вот еще темы с ответами:

Нужна подсказка с обучением - C++
Я хочу программировать на c++, мои знания на уровне 5/100 всех знаний про c++, кто может скинуть уроки про программирование на C++,...

Композиция (Нужна подсказка) - C++
Пишу код для использования через композицию нескольких классов код не компилиться думаю ошибку знаю и хочу у вас удостовериться может мона...

Нужна подсказка с ответами! - C++
4) Когда выделен массив объектов, какой конструктор используется чтобы инициализировать все объекты массива? a) автоматический copy...

Нужна професиональная подсказка чайнику. - C++
Добрый день всем уважаемые программисты. Я новый юзер в этом деле, изучать С++ начал неделю назад. По информатике дали задачи по С++, а...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
31.05.2011, 23:41
Ответ Создать тему
Опции темы

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