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

Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Kings_ton
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 43
13.11.2013, 14:39     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #1
Помогите! Задание такое: заменить в тексте все слова в которых есть хоть одна цифра на звездочки)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 14:39     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки
Посмотрите здесь:

Удалить все строки, в которых есть хотя бы одна цифра C++
C++ удалить все элементы в которых есть цифра 3
C++ Для заданного достаточно длинного слова найти в имеющемся тексте все слова, в которых использованы только буквы, имеющиеся в заданном слове
C++ найти все слова, в которых есть двойные согласные и заменить их символом *
Найти в тексте все слова, буквы в которых упорядочены по алфавиту. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
13.11.2013, 14:43     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #2
а текст какого формата и откуда берётся?
Kings_ton
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 43
13.11.2013, 14:46  [ТС]     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #3
Вводится с лавиатуры, типа текста 6gfht ggg 777 gfr6jy

Добавлено через 1 минуту
Текст вводится с клавиатуры, типа такого 6gfh 666 hhh jky5jj
newbie666
Заблокирован
13.11.2013, 15:19     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #4
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <tchar.h>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
int _tmain(int argc, _TCHAR* argv[])
{   
    std::cout << "Enter the string: ";
 
    std::string inputData;  
    std::getline(std::cin, inputData); 
    if(inputData.empty())
    {
        std::cout << "Enter somethink you fucked old moron :-)" << std::endl;       
    }
    else
    {
        std::stringstream ss(inputData);
        std::vector<std::string> words;
        while (!ss.eof())
        {
            std::string tmp;
            ss >> tmp;      
            words.push_back(tmp);
        }
 
        for(auto it = words.begin(); it!= words.end(); it++)
        {
            bool badWord = false;
            for(auto jt = it->begin(); jt!=it->end(); jt++)
            {
                if(isdigit(*jt))
                {
                    badWord = true;
                    break;
                }
            }
            if(!badWord)
                std::cout << *it << " ";
            else
            {
                for(auto jt = it->begin(); jt!=it->end(); jt++)
                    std::cout << "*";
                std::cout << " ";
            }       
        }
 
        std::cout << std::endl;
    }   
    
    system("pause");
    
    return 0;
}
P.S.: Самое смешное, что студенты наверное даже не глядят что им тут предложили несут преподам, а если на зачёте пропод случаяйно введёт пустую строку
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
13.11.2013, 19:34     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #5
newbie666, а что значит
Цитата Сообщение от newbie666 Посмотреть сообщение
auto it = words.begin();
? words.begin вроде понятно, а auto it что такое? Если вам не трудно, объясните.
А преподы только на результаты смотрят? На код разве нет?
newbie666
Заблокирован
13.11.2013, 20:05     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #6
Цитата Сообщение от Angeline Посмотреть сообщение
А преподы только на результаты смотрят?
Я не знаю, на что они смотрят, т.к. я уже ни разу не студент и уже давно, да и когда был студентом, учился совсем не на программиста. Всё по С++ учил сам, когда ещё интернет был редкостью, да и то через модем US Robotics 33.6 с занятой телефонной линией. Так что помочь было кроме молчаливой бумажной книжки некому. У вас тут ваше лафа ща...

Цитата Сообщение от Angeline Посмотреть сообщение
На код разве нет?
хз

Цитата Сообщение от Angeline Посмотреть сообщение
а auto it что такое?
it - это просто имя переменной. Вот ты же часто наверное пишешь for(int i = 0; i< ... и тд - так вот it - это то же самое, что и i. Просто, поскольку это не простая переменная, а итератор, то я обычно его обозначаю через it. auto означает (начиная со стандарта С++ который в Visual Studio 2008 что ли начинался) что тип итератора будет определён автоматический, тоесть мне не важно, какого типа контейнер words в данном случае. Почитай про контейнеры STL. Иначе мне пришлось бы писать не так, а вот так:
for(std::vector<std::string>::iterator it = words.begin(); it != words.end(); it++)

чувствуешь геморой без auto ?
metaluga145
13.11.2013, 20:26
  #7

Не по теме:

Цитата Сообщение от newbie666 Посмотреть сообщение
8
Цитата Сообщение от newbie666 Посмотреть сообщение
auto означает (начиная со стандарта С++ который в Visual Studio 2008 что ли начинался)
новое auto было введено с новым стандартом c++11,который был опубликован в 11 году. Visual Studio 2008 была выпущена в 2007 году, то есть не поддерживает стандарт c++0x без особых обновлений

newbie666
Заблокирован
13.11.2013, 20:30     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #8
Цитата Сообщение от metaluga145 Посмотреть сообщение
Visual Studio 2008 была выпущена в 2007
тфу, перепутал, с 2010-й студии auto работает и это точно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 22:19     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки
Еще ссылки по теме:

C++ Удалить из массива числа – палиндромы, в которых есть хотя бы одна нечетная цифра
C++ Если в тексте есть одинаковые слова, заменить все их экземпляры символом из заданного набора
Удалить из массива все элементы, в записи которых есть заданная цифра C++

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

Или воспользуйтесь поиском по форуму:
George_Amberson
9 / 9 / 10
Регистрация: 13.11.2013
Сообщений: 35
13.11.2013, 22:19     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки #9
Мой вариант, если вдруг понадобится.

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
#include <iostream>
#include <ctype.h>
int _main()
{
 
    char str[80];
    int l;
    
    printf("Enter string: ");
    gets(str);
 
    for(int i=0; i<strlen(str); i++) {
        if(isdigit((unsigned char)str[i]) != NULL) {
            for(int j=i; str[j]!='\0'; j++) {
                str[j] = '*';
                if(str[j+1] == ' ') {
                    i = j;
                    break;
                }
            }
            for(int l=i; str[l]!=' '; l--) {
                str[l] = '*';
                if(str[l-1] == ' ') 
                    break;
            }
        }
    }
 
    printf("Modified string: %s\n", str);
    return 0;
}
Yandex
Объявления
13.11.2013, 22:19     Заменить в тексте все слова, в которых есть хоть одна цифра, на звездочки
Ответ Создать тему
Опции темы

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