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

Символ строки преобразовать в цифру - C++

Восстановить пароль Регистрация
 
 
LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
13.04.2014, 23:07     Символ строки преобразовать в цифру #1
Нужно преобразовать именно в цифру, а получается, что переменная (int) накапливает цифры и получается числом. о_О! В чем ошибка? Как сделать правильно?

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
36
37
38
39
40
#include "iostream"
#include "stdio.h"
#include <string>
#include <clocale>
   using namespace::std;
 
void main()
{
    setlocale(LC_CTYPE, "rus");
    char s1[255], s2[255], R[255], str[255];
    int first, second, result, raznitsa, size;
 
    cout<<"Введите 1-ое число :";
    cin>> str;
    strcpy( s1, "0" );  
    strcat(s1, str);
    cout<<"Введите 2-ое число :";
    cin>> str;
    strcpy( s2, "0" );  
    strcat(s2, str);
    strcpy( str, "0" );
    cout << "Числа: s1= " << s1 << ", а s2= " << s2 << endl << endl;
    
    if(strlen(s1) > strlen(s2)) size=strlen(s1);
    else size=strlen(s2);
 
    for (int i=size-1; i>=0; i--)
    {
        first=atoi(&s1[i]);
        second=atoi(&s2[i]);
        cout << "s1= " << s1[i] << ", a s2= " << s2[i] << "---------  first= " << first << ", a second= " << second << endl;
 
        result= first+second;
 
        R[i]=result;
        cout << "R[" << i << "]= "<< R[i] << endl;
    }
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 23:07     Символ строки преобразовать в цифру
Посмотрите здесь:

C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» C++
Преобразовать строку, удалив каждый символ * и удвоив каждый символ, отличный от * C++
Найти символ первой строки, который первым не совпал с одним из символов второй строки. Вывести слово, в которое входит этот символ C++
C++ Строки. Преобразовать строку, заменяя каждую цифру соответствующим ей числом символов нижнего подчеркивания
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
13.04.2014, 23:23     Символ строки преобразовать в цифру #2
что не так то? конкретно проблемму озвучь
MegaCoder
6 / 2 / 1
Регистрация: 10.03.2014
Сообщений: 17
14.04.2014, 00:01     Символ строки преобразовать в цифру #3
из char преобразовать в цифру, которая - ascii код или которая число?, мне показалось или ты в одном int собрался хранить несколько других переменных(цифр).
Складывая 2 + 3 ты хочешь 5, или 23 ??
LuckyWolf
0 / 0 / 5
Регистрация: 12.04.2014
Сообщений: 18
14.04.2014, 00:26     Символ строки преобразовать в цифру #4
Запустил, получились цифры
LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
14.04.2014, 00:53  [ТС]     Символ строки преобразовать в цифру #5
не ascii, а именно саму цифру! я хочу 5 получить, если 2+3
IrineK
Заблокирован
14.04.2014, 00:57     Символ строки преобразовать в цифру #6
Цитата Сообщение от LeeZa Посмотреть сообщение
Как сделать правильно?
Объясните, что нужно сделать.
newbie666
Заблокирован
14.04.2014, 00:57     Символ строки преобразовать в цифру #7
Цитата Сообщение от LeeZa Посмотреть сообщение
е ascii, а именно саму цифру! я хочу 5 получить, если 2+3
что конкретно тебя не устраивает, где в твоём коде у тебя затруднения?
IrineK
Заблокирован
14.04.2014, 00:58     Символ строки преобразовать в цифру #8
Цитата Сообщение от LeeZa Посмотреть сообщение
я хочу 5 получить, если 2+3
А хотите получить 55 если 33 +22?
newbie666
14.04.2014, 00:59
  #9

Не по теме:

Цитата Сообщение от IrineK Посмотреть сообщение
А хотите получить 55 если 33 +22?
ты женщина что ли ?

LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
14.04.2014, 01:06  [ТС]     Символ строки преобразовать в цифру #10
Цитата Сообщение от newbie666 Посмотреть сообщение
что конкретно тебя не устраивает, где в твоём коде у тебя затруднения?
C++
1
2
first=atoi(&s1[i]);
        second=atoi(&s2[i]);
эти переменные получают код ascii, а мне нужны сами цифры, чтобы потом их сложить.

Добавлено через 35 секунд
Цитата Сообщение от IrineK Посмотреть сообщение
А хотите получить 55 если 33 +22?
Ну естественно!
IrineK
Заблокирован
14.04.2014, 01:07     Символ строки преобразовать в цифру #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ

Не по теме:

newbie666,
По фотке не видно?



Добавлено через 40 секунд
Цитата Сообщение от LeeZa Посмотреть сообщение
Ну естественно!
Ну получайте

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 <sstream>
using std::cout;
using std::cin;
using std::string;
using std::istringstream;
 
 
int main () 
{   setlocale(LC_CTYPE, "Russian");
    string s1, s2;
    int first, second;
 
    cout<<"Введите 1-ое число: ";
    cin>> s1;
    cout<<"Введите 2-ое число: ";
    cin>> s2;
   
    istringstream iss;
    iss.str(s1);
    iss >> first;
    iss.str("");            
    iss.clear();
    iss.str(s2);
    iss >> second;
 
     cout<<"Сумма: " << s1 << " + " << s2 << " = " << first + second;
 
    cin.sync(); cin.get();
    return 0;
}
newbie666
14.04.2014, 01:08
  #12

Не по теме:

Цитата Сообщение от IrineK Посмотреть сообщение
По фотке не видно?
ну мало ли, может это не твоя

IrineK
Заблокирован
14.04.2014, 01:48     Символ строки преобразовать в цифру #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
LeeZa,
Если вам обязательно нужен char, то и в этом случае есть варианты.

Добавлено через 21 минуту
Вариант 1

Такой же, как и со string, только поменять строку 11 на
C++
1
char s1[15], s2[15];
Вариант 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using std::cout;
using std::cin;
 
int main () 
{   setlocale(LC_CTYPE, "Russian");
    char s1[15], s2[15];
    int first, second;
 
    cout<<"Введите 1-ое число: ";
    cin>> s1;
    cout<<"Введите 2-ое число: ";
    cin>> s2;
  
    sscanf(s1, "%d", &first);
    sscanf(s2, "%d", &second);
 
     cout<<"Сумма: " << s1 << " + " << s2 << " = " << first + second;
 
    cin.sync(); cin.get();
    return 0;
}
newbie666
14.04.2014, 02:08
  #14

Не по теме:

IrineK, ты препод что ли?

IrineK
Заблокирован
14.04.2014, 02:21     Символ строки преобразовать в цифру #15

Не по теме:

Цитата Сообщение от newbie666 Посмотреть сообщение
IrineK, ты препод что ли?
Не, я - антипрепод.



Добавлено через 5 минут

Не по теме:

Препод типа учит, вы - типа учитесь, а мне - все это разгребать.

LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
14.04.2014, 22:52  [ТС]     Символ строки преобразовать в цифру #16
Кликните здесь для просмотра всего текста
Цитата Сообщение от IrineK Посмотреть сообщение

Не по теме:

newbie666,
По фотке не видно?



Добавлено через 40 секунд

Ну получайте

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 <sstream>
using std::cout;
using std::cin;
using std::string;
using std::istringstream;
 
 
int main () 
{   setlocale(LC_CTYPE, "Russian");
    string s1, s2;
    int first, second;
 
    cout<<"Введите 1-ое число: ";
    cin>> s1;
    cout<<"Введите 2-ое число: ";
    cin>> s2;
   
    istringstream iss;
    iss.str(s1);
    iss >> first;
    iss.str("");            
    iss.clear();
    iss.str(s2);
    iss >> second;
 
     cout<<"Сумма: " << s1 << " + " << s2 << " = " << first + second;
 
    cin.sync(); cin.get();
    return 0;
}

ЭТО ТО,ЧТО НУЖНО!!! СПАСИБО ОГРОМНОЕ !!! И со STRING мне даже нужнее! ^_^

Добавлено через 2 минуты
Только могли бы Вы мне объяснить следующее:
Цитата Сообщение от LeeZa Посмотреть сообщение
istringstream
Цитата Сообщение от LeeZa Посмотреть сообщение
iss.str(s1);
Цитата Сообщение от LeeZa Посмотреть сообщение
cin.sync();
Прошу прощения, но я никогда просто это не применяла. о_О!
IrineK
Заблокирован
14.04.2014, 23:42     Символ строки преобразовать в цифру #17
http://www.cplusplus.com/reference/s...istringstream/

http://www.cplusplus.com/reference/s...ingstream/str/

http://www.cplusplus.com/reference/i.../istream/sync/
LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
16.04.2014, 00:30  [ТС]     Символ строки преобразовать в цифру #18
Можно как-то все-таки посимвольно извлекать из строки элемент и превращать в int, а потом уже суммировать и превращать ответ снова в строку? (для тех случаев, когда сумма цифр не больше 9) - т.е. единицы с единицами, десятки с десятками, сотни с сотнями и т.д. ?
IrineK
Заблокирован
16.04.2014, 00:34     Символ строки преобразовать в цифру #19
Цитата Сообщение от LeeZa Посмотреть сообщение
когда сумма цифр не больше 9
А когда больше?
Вежливо хлопать глазами?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2014, 01:03     Символ строки преобразовать в цифру
Еще ссылки по теме:

C++ Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*"
C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» C++

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

Или воспользуйтесь поиском по форуму:
LeeZa
 Аватар для LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
16.04.2014, 01:03  [ТС]     Символ строки преобразовать в цифру #20
Цитата Сообщение от IrineK Посмотреть сообщение
А когда больше?
Вежливо хлопать глазами?
нет, там уж я проверку сделаю.. просто застряла на данном этапе.
У меня задание: сделать библиотеку для сложения очень больших чисел, поэтому я хочу сделать ввод через string
Yandex
Объявления
16.04.2014, 01:03     Символ строки преобразовать в цифру
Ответ Создать тему
Опции темы

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