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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 49
#1

преобразование символов в числа - C++

09.04.2013, 18:10. Просмотров 1501. Ответов 11
Метки нет (Все метки)

Ребят помогите решить задачу плииз!! дан текст, содержащий цифры.Заменить все нечетные цифры наименьшей цифрой,содержащейся в данном тексте.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 18:10     преобразование символов в числа
Посмотрите здесь:

Преобразование символов в числа - C++
Дан текст, содержащий цифры. Вывести на экран наибольшую цифру. Помогите пожалуйста))

Преобразование символов в числа - C++
Дан текст, имеющий вид: dl + d2 + ... + dn, где di — цифры. Вычислить записанную в тексте сумму.

Преобразование символов в числа - C++
Дан текст. Определить, является ли он правильной десятичной записью целого числа.

Преобразование символов в числа - C++
Дан текст, содержащий целые числа. Вывести на экран сумму нечетных чисел. Ребят помогите пожалуйста с задачкой.

Преобразование символов в числа - C++
Дан текст, имеющий вид: dl + d2 + ... + dn, где di — цифры. Вычислить записанную в тексте сумму. Долго ломаю голову но выходит фигня....

Преобразование символов в числа и вычисление их суммы - C++
Всем доброго времени суток. Дан текст,имеющий вид: d1+d2+...+dn, где di-цифры. Вычислить записанную в тексте сумму.

Преобразование символов в строке - C++
Нужно изменить буквы в строке по следующему принципу: "a" на "b", "A" на "B", "z" на "a" и т.д. Но толкнулся с такой проблемой: программа...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:06     преобразование символов в числа #2
Nikita9413,

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
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
bool pred_min(char elem1, char elem2)
{
    return elem1 - '0' < elem2 - '0';
}
 
bool predikat(char elem){
    return (((elem - '0') % 2) != 0);
}
 
int main()
{
    string str("123456789");
 
    char min = *min_element(str.begin(), str.end(), pred_min);
 
    replace_if(str.begin(), str.end(), predikat, min);
 
    cout << str << endl;
    cout << "\n\n";
    return 0;
}
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 49
09.04.2013, 20:30  [ТС]     преобразование символов в числа #3
не совсем понятно, а можно сделать чтобы строку с клавиатуры можно было вводить?
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:34     преобразование символов в числа #4
Nikita9413,

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 <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
bool pred_min(char elem1, char elem2)
{
    return elem1 - '0' < elem2 - '0';
}
 
bool predikat(char elem){
    return (((elem - '0') % 2) != 0);
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = *min_element(str.begin(), str.end(), pred_min);
 
    replace_if(str.begin(), str.end(), predikat, min);
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 49
09.04.2013, 20:39  [ТС]     преобразование символов в числа #5
я извиняюсь за наглость, но можно сделать так чтобы было понятно первокурснику)) просто в этом коде очень трудно разобраться, я и половины функций не знаю
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:48     преобразование символов в числа #6
Nikita9413, так понятней?

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
29
30
31
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = str[0];
 
    /*ищем минимум*/
    for(unsigned i = 0; i < str.length(); ++i){
        if((str[i] - '0') < (min - '0')){           //str[i] - '0' дает число вместо символа
            min = str[i];
        }
    }
 
    /*заменяем нечетные минимумом*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(((str[i] - '0') % 2) != 0){
            str[i] = min;
        }
    }
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 49
09.04.2013, 21:43  [ТС]     преобразование символов в числа #7
да, спасибо

Добавлено через 34 минуты
еще вопрос, если в тексте содержаться еще и слова то код работает не корректно, как это исправить?
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 21:49     преобразование символов в числа #8
Nikita9413, сделать проверку, является символ числом или нет, есть функция стандартная isalpha
Nikita9413
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 49
09.04.2013, 21:57  [ТС]     преобразование символов в числа #9
не совсем понятно, а можно пример использования этой функции?
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 22:01     преобразование символов в числа #10
http://www.cplusplus.com/reference/locale/isalpha/
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.04.2013, 22:06     преобразование символов в числа #11
Цитата Сообщение от yoghurt92 Посмотреть сообщение
elem1 - '0' < elem2 - '0'
elem1 < elem2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 22:11     преобразование символов в числа
Еще ссылки по теме:

Преобразование строки символов в массив - C++
Подскажите, как преобразовать строку символов в массив?

Преобразование строки символов в массив - C++
void stuToArr(char s, int ar, int&amp;size) { int i=0; size=0; forever { while (s='\0'&amp;&amp;!isdigit(s))i++; ...

Преобразование строк, удаление символов - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; using namespace std; int main() { int n,*k; char k1; ...

Преобразование русских символов, функция gets - C++
При вводе английских букв все работает, но мне нужно обрабатывать строку из русских, но почему-то функции gets и getline считывают вместо...

Преобразование символов после ввода - C++
Условие будет в прикрепленных файлах. Исправьте, пожалуйста, Мой код, насколько я понимаю, выводит коды символов. #include...


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

Или воспользуйтесь поиском по форуму:
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 22:11     преобразование символов в числа #12
Nikita9413, вот, она тут только для латинских букв

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
29
30
31
32
33
34
35
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = str[0];
 
    /*ищем минимум*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(isdigit(str[i])){
            if((str[i] - '0') < (min - '0')){           //str[i] - '0' дает число вместо символа
                min = str[i];
            }
        }
    }
 
    /*заменяем нечетные минимумом*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(isdigit(str[i])){
            if(((str[i] - '0') % 2) != 0){
                str[i] = min;
            }
        }
    }
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
Добавлено через 1 минуту
Jupiter, да конечно, можно и так
Yandex
Объявления
09.04.2013, 22:11     преобразование символов в числа
Ответ Создать тему
Опции темы

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