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

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

22.11.2016, 11:35. Показов 1117. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru