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

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

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

Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в нем нет C++
В последовательности заменить все отрицательные члены на -1, положительные на 1, а нулевые оставить без изменений C++
программа должна разделять введенную строку пополам и соединять в обратном порядке!если слово нечетное то оставить букву в середине без изменений! C++
Массив. Парные элементы массиве А удвоить, а нечетные оставить без изменений C++
C++ Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11830 / 6809 / 769
Регистрация: 27.09.2012
Сообщений: 16,883
Записей в блоге: 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
Просмотров: 52

Размер: 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
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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++
Если последовательность отсортирована по возрастанию, оставить ее без изменения. Иначе получить иную последовательность C++

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

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

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