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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Soull
18 / 4 / 0
Регистрация: 21.10.2012
Сообщений: 60
#1

Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * - C++

21.01.2013, 00:41. Просмотров 551. Ответов 7
Метки нет (Все метки)

Ввести символьный массив из 12 символов. Если в тексте нет символа +, то оставить без изменений, в другом случаи каждую из цифр перед символом+ заменять на *.
Помогите, плиз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 00:41     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на *
Посмотрите здесь:

C++ Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в нем нет C++
В последовательности заменить все отрицательные члены на -1, положительные на 1, а нулевые оставить без изменений C++
Ввести строку символов, если ее длина кратна 2, посчитать количество цифр в этой строке. C++
Массив. Парные элементы массиве А удвоить, а нечетные оставить без изменений C++
C++ Если в тексте нет символа +, то оставить текст без изменения, иначе каждую из цифр, предшествующую первому вхождению символа +, заменить символом -
Оставить первую половину текста без изменений, а вторую записать в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 1
21.01.2013, 00:49     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #2
как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstring>
int main(){
    char str[13]="n23f6+123fd5";
    std::cout<<"Source: "<<str<<std::endl;
    for(char * p=str+strlen(str)-1;str<=p;--p){
        if(*p=='+'){
            for(;str<=p;--p)
                if(isdigit(*p))
                    *p='*';
            break;
        }
    }
    std::cout<<"Rezult: "<<str<<std::endl;
}
Название: Безымянный.jpg
Просмотров: 53

Размер: 9.7 Кб
Soull
18 / 4 / 0
Регистрация: 21.10.2012
Сообщений: 60
21.01.2013, 00:57  [ТС]     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #3
спасибо огромное)))
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
21.01.2013, 01:26     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #4
Croessmah, а разве isdigit() не из <cctype> ?

Сейчас протестил, у меня и без cctype работает, и без cstring работает... Студия 2010
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
21.01.2013, 01:27     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
#include <cctype>
 
int main() {
 
    char s[13] = {0};
    std::cout << "input string: ";
    std::cin.getline(s, sizeof(s));
    
    char* end = std::strrchr(s, '+');
    
    if(end) {
        
        for(char* p = s; p != end; ++p)
            if(std::isdigit(*p)) *p = '*';
    }
    
    std::cout << "result: " << s << std::endl;
}
Soull
18 / 4 / 0
Регистрация: 21.10.2012
Сообщений: 60
21.01.2013, 01:28  [ТС]     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #6
спасибо огромное)))
Croessmah
21.01.2013, 02:13
  #7

Не по теме:

Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Студия 2010
Приводить в пример студию как-то безобразно, имхо!

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2013, 03:04     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на *
Еще ссылки по теме:

C++ Получить число, состоящее из суммы цифр, если оно четное - найти сумму двух первых цифр, иначе - разность
C++ Если длина строки больше 10 - оставить первые 6 символов, иначе дополнить строку символами 'о'
Каждую букву, стоящую после символа '.' непосредственно или отделенную символом ‘ ’ (пробел), преобразовать к C++
C++ Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
Перед каждым вхождением заданного символа в строку S вставить строку S0 C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
21.01.2013, 03:04     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * #8
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
а разве isdigit() не из <cctype> ?
Сейчас протестил, у меня и без cctype работает, и без cstring работает... Студия 2010
isdigit есть в двух вариантах, одна лежит в cctype другая в locale. Другое дело, что эти заголовочные файлы могут быть включены внутри других используемых в данный момент заголовочных файлов, но при этом нет никакой гарантии, что при переносе кода на другой компилятор всё будет работать точно так же. Поэтому заголовочные файлы, функции из которых используются, рекомендуется всегда указывать явно.
Yandex
Объявления
21.01.2013, 03:04     Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на *
Ответ Создать тему
Опции темы

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