Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 47
1

Ввести строку и заменить все числа на знак "*"

24.10.2016, 21:37. Показов 811. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
    Console::WriteLine("Ввести строку:");
    String ^s = Console::ReadLine();
    for (int i = 0; i < s->Length; i++)
        if (s[i] == '1' || s[i] == '2' || s[i] == '3' || s[i] == '3' || s[i] == '5' || s[i] == '6' || s[i] == '7' || s[i] == '8' || s[i] == '9' || s[i] == '0')
        {
        ????
        }
    Console::WriteLine("\nРезультат:\n" + s);
    Console::ReadLine();
    return 0;
}
1)Как менять все числа а не только от 0 до 9 (if (s[i] == '1' || s[i] == '2' || s[i] == '3' || s[i] == '3' || s[i] == '5' || s[i] == '6' || s[i] == '7' || s[i] == '8' || s[i] == '9' || s[i] == '0'))
2) Не знаю что писать после условия.

З.Ы. Спасибо заранее за помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2016, 21:37
Ответы с готовыми решениями:

Ввести строку символов (с пробелами). Все пробелы удалить. Добавить в конце восклицательный знак
Ввести строку символов (с пробелами). Все пробелы удалить. Добавить в конце восклицательный знак

Ввести строку. Слово max длины заменить на вводимое, если таких слов несколько — заменить все
Ввести строку. Слово max длины заменить на вводимое, если таких слов несколько — заменить все.

6. Даны целые числа a, b, c. Если a ≤ b ≤ c, то все числа заменить наименьшим из них, в противном случае сменить знак каждого числа
6. Даны целые числа a, b, c. Если a ≤ b ≤ c, то все числа заменить наименьшим из них, в противном...

Ввести строку и заменить в ней все цифры на *
Как записать на Си программу: Ввести строку и заменить в ней все цифры на * ?

1
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
25.10.2016, 14:33 2
katafot, строки в .NET нельзя изменять поэтому придется использовать временную строку или класс System::Text::StringBuilder
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
String^ tmp = "";
for (int i = 0; i < s->Length; i++)
{
    if (s[i] == '1' || s[i] == '2' || s[i] == '3' || s[i] == '4' || s[i] == '5' || s[i] == '6' || s[i] == '7' || s[i] == '8' || s[i] == '9' || s[i] == '0')
    {
        tmp += "*";
    }
    else
    {
        tmp += s[i];
    }
}
s = tmp;
Вариант с использованием StringBuilder (более эффективное использование памяти)
C++
1
2
3
4
5
6
7
8
9
10
11
using namespace System::Text;
...
StringBuilder^ tmp = gcnew StringBuilder(s);
for (int i = 0; i < s->Length; i++)
{
    if (s[i] == '1' || s[i] == '2' || s[i] == '3' || s[i] == '4' || s[i] == '5' || s[i] == '6' || s[i] == '7' || s[i] == '8' || s[i] == '9' || s[i] == '0')
    {
        tmp[i] = '*';
    }
}
s = tmp->ToString();
Ну и наконец можно сделать замену с помощью регулярного выражения
C++
1
2
3
using namespace System::Text::RegularExpressions;
...
s = Regex::Replace(s, "\\d", "*");
Цитата Сообщение от katafot Посмотреть сообщение
Как менять все числа а не только от 0 до 9
Если имеется в виду что нужно заменить одно число или несколько расположенных подряд цифр на одну *, то реализуй этот алгоритм самостоятельно. Там всего-лишь нужно запоминать был ли предыдущий символ цифрой и действовать соответственно. Кстати проверку на цифру можно записать проще - if (Char::IsDigit(s[i]))
0
25.10.2016, 14:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2016, 14:33
Помогаю со студенческими работами здесь

Ввести строку из 5 символов, заменить все цифры символом '#' (TASM)
Задание: Ввести строку из 5 символов, заменить все цифры символом '#' и вывести рез. на экран. ...

Ввести с экрана строку. Заменить в строке все символы на 1, а пробелы на 0
Ввести с экрана строку. Заменить в строке все символы на 1, а пробелы на 0

Ввести строку, удалить из неё все цифры, а знаки “+” заменить на” –“ и наоборот
1. Ввести строку, удалить из неё все цифры, а знаки “+” заменить на” –“ и наоборот. 1. Ввести...

Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать...

Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать...

Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать...

Ввести с клавиатуры 10 чисел. Если среди них есть числа большие 15, заменить их на 15. Напечатать все полученные числа.
Помогите решить задачу в Turdo C++, там где используется printf scanf: Ввести с клавиатуры 10...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru