Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для cokoji228
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25

Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую

22.11.2016, 11:35. Показов 1089. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано текст. Если он не содержит символа "+", то оставить его без изменения. В противном случае каждую цифру, которая находится перед первым символом "+", заменить на запятую.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2016, 11:35
Ответы с готовыми решениями:

Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
Всем доброго вечера, если Вам не сложно, помогите с задачей. Решить желательно, на С (Си), но если Вам лучше на С + +, буду также...

Каждую латинскую букву, которая находится перед первым символом *, заменить на точку
Если в заданном тексте нет символа *, то оставить его без изменения. В противном случае каждую латинскую букву, которая находится перед...

Заменить каждую цифру, расположенную между первой и последней точкой, символом *
Заменить каждую цифру, расположенную между первой и последней точкой, символом ‘*’.

14
44 / 42 / 31
Регистрация: 15.03.2013
Сообщений: 91
22.11.2016, 11:55
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 <stdio.h>
#include <string.h>
#include <ctype.h>
 
void main(void)
{
char *text="abcdef 0987 + xyz 9864";// исходный текст
char *first;
 
printf("\nBefor: %s",text);
 
first=strchr(text,'+');// ищим плюс
 
if( first !=NULL)
{
int  i=0;
 
 while( text[i] != '+' )
  {
       if( isdigit(text[i]) ) tetx[i]=',';
      i++;
  }
 
}
 
printf("\nAfter: %s",text);
 
}
0
 Аватар для cokoji228
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25
22.11.2016, 12:00  [ТС]
Цитата Сообщение от SDev Посмотреть сообщение
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 <stdio.h>
#include <string.h>
#include <ctype.h>
 
void main(void)
{
char *text="abcdef 0987 + xyz 9864";// исходный текст
char *first;
 
printf("\nBefor: %s",text);
 
first=strchr(text,'+');// ищим плюс
 
if( first !=NULL)
{
int  i=0;
 
 while( text[i] != '+' )
  {
       if( isdigit(text[i]) ) tetx[i]=',';
      i++;
  }
 
}
 
printf("\nAfter: %s",text);
 
}
isdigit не канает
0
44 / 42 / 31
Регистрация: 15.03.2013
Сообщений: 91
22.11.2016, 12:12
C++
1
if( '0' <= text[i] && text[i] <= '9' ) text[i]=',';
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
22.11.2016, 12:13
del
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.11.2016, 12:18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
 
int main()
{
    std::string s = "abcdef 0987 + xyz 9864";
    auto it = std::find(s.begin(), s.end(), '+');
    if (it != s.end())
        std::replace_if(s.begin(), it, isdigit, ',');
    std::cout << s << std::endl;
}
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
22.11.2016, 12:19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
 
int main()
{
    std::string str{ "mama mila1234+ramu" };
    auto it = std::find( str.begin(), str.end(), '+' );
    if( it != str.end() )
    {
        std::replace_if( str.begin(), it, [](const char c) { return std::isdigit(c); }, ',' );
    }
    std::cout << str;
}
0
 Аватар для moskitos80
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
22.11.2016, 12:26
Как вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <iostream>
 
int main()
{
    std::string text = "abcdef 0987 + xyz 9864";
 
    if (text.find("+") != std::string::npos) {
        for(char &ch: text) {
            if (ch == '+') { break; }
            if (std::isdigit(ch)) { ch = ','; }
        }
    }
 
    std::cout << text << std::endl;
 
    return 0;
}
0
 Аватар для cokoji228
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25
29.11.2016, 11:53  [ТС]
можна что бы из вводимого текста это все делалось

Добавлено через 2 минуты
можна что бы из вводимого текста это все делалось
ввел текст и и уже из него это делаеться
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.11.2016, 12:00
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
 
int main()
{
    std::string s;
    std::getline(std::cin, s);
    auto it = std::find(s.begin(), s.end(), '+');
    if (it != s.end())
        std::replace_if(s.begin(), it, isdigit, ',');
    std::cout << s << std::endl;
}
0
 Аватар для cokoji228
0 / 0 / 1
Регистрация: 17.11.2016
Сообщений: 25
29.11.2016, 12:05  [ТС]
ошыбка с std и аглоритм. можно как то через printf ?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.11.2016, 12:32
Цитата Сообщение от cokoji228 Посмотреть сообщение
ошибка с std и аглоритм.
Код соответствует стандарту С++11.
Если компилятор не знает пространства имён std - на помойку Борланд его.
Цитата Сообщение от cokoji228 Посмотреть сообщение
можно как то через printf ?
То есть написать код на С?
0
 Аватар для moskitos80
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
29.11.2016, 13:03
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
#include <cctype>       // std::isdigit
#include <string>       // std::string
#include <cstdio>       // std::printf std::fgets
 
const int BUFFER_SIZE = 1024;
 
int main()
{
    char buffer[BUFFER_SIZE];
    std::fgets(buffer, BUFFER_SIZE, stdin);
 
    std::string text{buffer};
 
    if (text.find("+") != std::string::npos) {
        for(char &ch: text) {
            if (ch == '+') { break; }
            if (std::isdigit(ch)) { ch = ','; }
        }
    }
 
    std::printf("%s", text.c_str());
    
    return 0;
}
- но на мой взгляд это ивращение
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.11.2016, 13:15
Тогда уж так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <ctype.h>
#include <stdio.h>
#define SIZE 256
 
int main(void)
{
    char text[SIZE], *p = NULL;
    fgets(text, SIZE, stdin);
    for (p = text; *p && *p != '+'; p++)
        if (isdigit(*p))
            *p = ',';
 
    printf("%s", text);
    return 0;
}
0
 Аватар для moskitos80
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
29.11.2016, 13:20
Или даже так (подсмотрено у MrGluck):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <algorithm>    // std::replace_if
#include <cctype>       // std::isdigit
#include <string>       // std::string
#include <cstdio>       // std::printf std::fgets
 
const int BUFFER_SIZE = 1024;
 
int main()
{
    char buffer[BUFFER_SIZE];
    std::fgets(buffer, BUFFER_SIZE, stdin);
 
    std::string text{buffer};
    auto plusPos = text.find("+");
 
    if (plusPos != std::string::npos) {
        std::replace_if(text.begin(), text.begin() + plusPos, isdigit, ',');
    }
 
    printf("%s", text.c_str());
 
    return 0;
}
- но все-равно по-моему это извращение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2016, 13:20
Помогаю со студенческими работами здесь

Заменить все пробелы первым символом текста
Нужна ваша помощь Написать программу, выполняющую посимвольную обработку текстового файла. Задание: Заменить все пробелы первым...

Заменить каждую цифру на элемент текста
Привет! Вообщем вот такая вот задача (вопросы напишу после условия) дано: type txt=file of char Написать процедуру, заменяющую в тексте...

Дан текст. Заменить каждую букву перед буквой "а" символом
Помогите. Нужно написать программу на C++. Задача такая - вводим текст. Надо чтобы каждая буква перед &quot;a&quot; была заменена на...

Напишите программу,которая заменит в заданном тексте каждую цифру символом "?":
Помогите пожалуйста)

Вывести два символа, первый из которых находится перед символом С в кодовой таблице, а второй следует за символом С
Помогите, пожалуйста, решить это задание: Дано символ С. Вывести два символа, первый из которых находится перед символом С в кодовой...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru