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

Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру - C++

Восстановить пароль Регистрация
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 339
08.05.2014, 14:50     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #1
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести только те слова сообщения, которые содержат хотя бы одну цифру.

Помогите с кодом.

Добавлено через 30 минут
C++
1
2
3
char *str="Зд4сь птицы не п0ют...";
  char digit[]="1234567890"; // строка искомых символов
  int num=strspn(str, digit);  //поиск строки в подстроке
Далее без понятия...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 14:50     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру
Посмотрите здесь:

Дана строка. Указать те слова, которые содержат хотя бы одну букву k C++
C++ Указать те слова, которые содержат хотя бы одну букву k
C++ Вывести только те слова сообщения, которые встречаются в нем более n раз
Дана строка. Указать те слова, которые содержат хотя бы одну букву "k" C++
Вывести только те слова сообщения, которые содержат не более чем n букв C++
Вывести только те слова сообщения, которые встречаются в тексте один раз C++
Вывести только те слова сообщения, которые встречаются в нем ровно один раз C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
08.05.2014, 15:03     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от b0nny Посмотреть сообщение
Вывести только те слова сообщения, которые содержат хотя бы одну цифру.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include<sstream>
#include<algorithm>
#include<string>
int main()
{
    std::string str = "f1rst string w0rd",word;
    std::stringstream s(str);
    while(s>>word)
        if(std::find_if(word.begin(),word.end(),::isdigit)!=word.end())
            std::cout<<word<<" ";
    return 0;
}
jurok_85
237 / 220 / 75
Регистрация: 21.02.2013
Сообщений: 514
Завершенные тесты: 1
08.05.2014, 15:12     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #3
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
29
30
31
32
33
34
#include <iostream>
#include <sstream>
#include <string>
#include <cctype>
 
using namespace std;
 
int main()
{
    string str = "Zd4s ptici ne p0jut a p1ashut";
 
    stringstream ss(str);
 
    string temp;
    int sz;
    bool flag;
    while(!ss.eof())
    {
 
 
        flag = false;
        ss >> temp;
        sz = temp.length();
        for(int i = 0; i != sz; i++)
        {
            if(isdigit(temp[i]))
            flag = true;
        }
        if(flag)
        cout << temp << endl;
 
    }
    return 0;
}
Ilot
Модератор
Эксперт С++
1778 / 1153 / 223
Регистрация: 16.05.2013
Сообщений: 3,041
Записей в блоге: 5
Завершенные тесты: 1
08.05.2014, 15:47     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #4
cooller, jurok_85,
"Вася1,любит пиво?"
Оп-ля.
jurok_85
237 / 220 / 75
Регистрация: 21.02.2013
Сообщений: 514
Завершенные тесты: 1
08.05.2014, 15:54     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #5
любит, потому и пишет не грамотно
BoyStyle
 Аватар для BoyStyle
7 / 7 / 0
Регистрация: 24.02.2014
Сообщений: 301
Завершенные тесты: 1
08.05.2014, 15:58     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #6
jurok_85, используй
C
1
 setlocale(LC_ALL, "Russian");
чтобы не писать в транслите и не мучатся )
jurok_85
237 / 220 / 75
Регистрация: 21.02.2013
Сообщений: 514
Завершенные тесты: 1
08.05.2014, 16:03     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #7
NightSun, а у меня code::blocks пробовал setlocale(LC_ALL, "Russian"); все равно что то непонятное выводит. Может потому что windows английский?
BoyStyle
 Аватар для BoyStyle
7 / 7 / 0
Регистрация: 24.02.2014
Сообщений: 301
Завершенные тесты: 1
08.05.2014, 16:05     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #8
jurok_85,
C
1
setlocale (0,"Rus");
попробуйте это. Вставлять нужно
C
1
2
 int main()
{ сюда }
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
08.05.2014, 16:15     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #9
Цитата Сообщение от jurok_85 Посмотреть сообщение
а у меня code::blocks пробовал setlocale(LC_ALL, "Russian"); все равно что то непонятное выводит
попробуй
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
и в свойствах консоли поставь шрифт Lucida Control

Добавлено через 51 секунду
Цитата Сообщение от NightSun Посмотреть сообщение
чтобы не писать в транслите и не мучатся )
писать на английском и не мучатся)
Ilot
Модератор
Эксперт С++
1778 / 1153 / 223
Регистрация: 16.05.2013
Сообщений: 3,041
Записей в блоге: 5
Завершенные тесты: 1
08.05.2014, 16:25     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #10
Цитата Сообщение от cooller Посмотреть сообщение
писать на английском и не мучатся)
Правильно. Особенно если забываются локали и фасеты.
SANYAMILITARY
7 / 7 / 3
Регистрация: 07.05.2014
Сообщений: 56
08.05.2014, 19:13     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #11
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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <conio.h>
#include <cstring>
#include <cctype>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    char *str = "I 10ve pr0gramming";
    cout << "String: " << str << endl;
    char digit[] = "1234567890";
    cout << "Numbers: " << digit << endl;
    int number = strlen(str);
 
    int start(0);
    int finish(0);
    for (int t(0); t<number; t++)
    {
        if (str[t]==' ') finish = t;
        if(int((str[t])>47 && int(str[t])<58) || start<finish)
        {
            while (str[start] != ' ' && start<=number)
            {
                for (finish; finish<=start; finish++)
                  cout << str[finish];
                start++;
            }
            start++;
        }
 
    }
 
 
    _getch();
    return 0;
}
Добавлено через 56 секунд
Вот мой вариант. Я понимаю, что немного коряво. Не судите строго.

Добавлено через 5 минут
Блин, забыл. Вводить только маленькие английские буквы при желании можна доработать.
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 339
08.05.2014, 19:27  [ТС]     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #12
Спасибо всем.
Выбрал более понятный вариант для себя.
setlocale(LC_ALL, "Russian"); - не помогает. Фигня какая-то получается на выходе.
При SetConsoleCP(1251); SetConsoleOutputCP(1251); - компилятор ругается. В консоле стоит Lucida Control.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
08.05.2014, 19:30     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #13
Добавлено через 58 секунд
Цитата Сообщение от b0nny Посмотреть сообщение
При SetConsoleCP(1251); SetConsoleOutputCP(1251); - компилятор ругается
подключи
C++
1
#include<windows.h>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 19:38     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру
Еще ссылки по теме:

Вывести только те слова сообщения, которые начинаются и оканчиваются на одну и ту же букву C++
C++ Вывести только те слова сообщения, которые содержат не более чем n букв
Вывести только те слова сообщения, которые начинаются и оканчиваются на заданную букву C++
Вывести все слова сообщения, которые содержат данную букву C++
Вывести только те слова сообщения, которые встречаются в нем ровно один раз C++

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

Или воспользуйтесь поиском по форуму:
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 339
08.05.2014, 19:38  [ТС]     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру #14
Что-то как-то мне не понятно.
Точно не пахал в варианте у cooller русский. Я все варианты пробывал. У 2-го точно тоже не пахал у меня. Вот 3-й с русским не пробывал.
setlocale(LC_ALL, "Russian"); - я добавлял один фиг.
Щас не знаю как, но щас русский отображается и без setlocale(LC_ALL, "Russian"); МАГИЯ.
Yandex
Объявления
08.05.2014, 19:38     Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру
Ответ Создать тему
Опции темы

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