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

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

Восстановить пароль Регистрация
 
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
31.05.2011, 18:53     Строки, нужна подсказка. #1
Дана строка, состоящая из слов, разделенных любым количеством пробелов. Напишите программу, которая находит все слова, в которых буква ”а” встречается более чем один раз.

Накодил такую штуку
Код
#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 << "Символ нигде не встречается!";
}
но это же не совсем то что надо. Подскажите, куда дальше двигаться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 18:53     Строки, нужна подсказка.
Посмотрите здесь:

Композиция (Нужна подсказка) C++
C++ строки.киррилица.нужна подсказка по коду
C++ нужна подсказка
Нужна подсказка в отладке C++
Нужна подсказка с ответами! C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 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';
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
31.05.2011, 19:48  [ТС]     Строки, нужна подсказка. #4
Спасибо большое, вы реально помогли.
AmaTeRaTsu
 Аватар для AmaTeRaTsu
94 / 27 / 2
Регистрация: 31.05.2011
Сообщений: 123
31.05.2011, 21:41     Строки, нужна подсказка. #5
asics, спасибо большое вам! Мне тоже ваш пример пригодился, чуточку переделал и все
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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';
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 23:41     Строки, нужна подсказка.
Еще ссылки по теме:

C++ нужна подсказка
Нужна подсказка C++
While(i<=n) b[i]=a[i] i++. Нужна подсказка( C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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;
}
Yandex
Объявления
31.05.2011, 23:41     Строки, нужна подсказка.
Ответ Создать тему
Опции темы

Текущее время: 05:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru