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

Задача по строкам!String - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.76
Princes
Сообщений: n/a
17.04.2012, 14:27     Задача по строкам!String #1
Помогите пожалуйста с задачей по строкам.. String

Вводится предложение строка,вывести все слова с тремя буквами i,разделитель между словами пробел.

Желательно с обьяснением!Очень срочно надо,заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2012, 14:27     Задача по строкам!String
Посмотрите здесь:

Задача по строкам в С C++
Вопрос по строкам (string) C++
переделать чаровскую прогу по строкам в string C++
C++ Задача по строкам
Задача по строкам!!! C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
17.04.2012, 14:48     Задача по строкам!String #2
Вроде так...

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
25
26
27
28
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
    char str[30];
 
    cout << "Vvedite stroky: ";
    //читаем строку (не больше 29 символов)
    cin.getline(str,30);
    //отделяем первое слово
    //char *strtok(char *s1, const char *s2); - Делит исходную строку
    //s1 на лексемы (подстроки), разделенные одним или несколькими символами из строки s2.
    char *p = strtok(str, " ");
    //если есть хотябы одно слово
    while(p)
    {
        //счетчик <i> равен 0
        int count=0;
        //проходим по всме символам и если есть <i> увеличиваем счетчик на единицу
        for(int i=0; p[i]; i++) if (p[i] == 'i') count++;
        //если число <i> равно трем - выводим слово
        if (count == 3) cout << p << endl;
        //смотрим есть ли второе слово
        p = strtok(NULL," ");
    }
}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
17.04.2012, 14:51     Задача по строкам!String #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <cstring>
#include <sstream>
#include <algorithm>
 
int main()
{
    std::string Str;
    std::getline(std::cin, Str);
    std::replace_if(Str.begin(), Str.end(), ispunct, ' ');
    std::stringstream stream(Str);
    while(stream>>Str)
        if(std::count(Str.begin(), Str.end(), 'i') == 3)
            std::cout<<" "<<Str;
    std::cout<<std::endl;
    system("pause");
    return 0;
}
Princes
Сообщений: n/a
17.04.2012, 15:27     Задача по строкам!String #4
denys_l , огромное спасибо вам! Вроде все понятно,но еще вопрос...можно ли заменить char чем то другим?? 30 символов маловато!
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
17.04.2012, 16:21     Задача по строкам!String #5
Цитата Сообщение от Princes Посмотреть сообщение
denys_l , огромное спасибо вам! Вроде все понятно,но еще вопрос...можно ли заменить char чем то другим?? 30 символов маловато!
можно поставить и 1000 вместо 30. Правда в двух местах придется поменять значение. Либо создать отдельно целочисленную константу и инициализировать её значением, а потом подставлять эту переменную в код.

Может можно как-то string-ом заменить. Но я не знаю
Yandex
Объявления
17.04.2012, 16:21     Задача по строкам!String
Ответ Создать тему
Опции темы

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