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

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

Войти
Регистрация
Восстановить пароль
 
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
#1

из char в int со знаком - C++

23.09.2013, 18:13. Просмотров 366. Ответов 9
Метки нет (Все метки)

Комплексные числа
C++
1
2
3
4
5
6
7
    zn1 = "1+3i";
    zn2 = "4-5i";
    int r1 = atoi(&zn1[0]);
    int r2 = atoi(&zn2[0]);
    
    int i1 = atoi(&zn1[1,2]);
    int i2 = atoi(&zn2[1,2]);
В итоге то число которое с минусом теряется(( а нужно взять именно со знаком (-5)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 18:13     из char в int со знаком
Посмотрите здесь:

char* to int - C++
Нужно перевести числа с char* в int. Моя функция переводит только положительные числа, а как сделать чтобы и отрицательное переводила? ...

int=>char - C++
Извините за такой тупой вопрос, в гугле искал, не нашёл подходящего ответа. Как по ASCII коду переводить номер символа в символ? ...

char-int - C++
char c; cin.get(c,99); int a; for(int i=0;i!=strlen(c)-1;i++) { sscanf(c,"%d",&a); cout<<a<<"\t"; } ...

из char[] в int - C++
Задача не столь тривиальна как кажется. Мне нужно преобразовать например "2523532" в char* где данные будут храниться в 256ричной системе....

Из char[] в int - C++
Есть символьный массив. Допустим char={3, 5, 4}; как получить число int = 354 ?

Из CHAR в INT - C++
Есть вопрос: Существует массив к примеру char Заполнено 3 первых символа, которые представляют собой разряды int числа. Как можно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
23.09.2013, 18:22     из char в int со знаком #2
Вы надеетесь, что zn2[1,2] выдаст Вам подстроку? Это не питон.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.09.2013, 18:36     из char в int со знаком #3
beats, для этих целей лучше использовать шаблон std::complex.
http://www.cplusplus.com/reference/c...ex/?kw=complex
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
23.09.2013, 19:08  [ТС]     из char в int со знаком #4
Цитата Сообщение от Fyret Посмотреть сообщение
Вы надеетесь, что zn2[1,2] выдаст Вам подстроку? Это не питон.
тогда скажи как надо
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
23.09.2013, 19:14     из char в int со знаком #5
Прочти всю строку и найди все числа перед которыми стоит знак " - ", потом используй эту информацию для достижение своей цели (получения числа с минусом).
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
23.09.2013, 19:58  [ТС]     из char в int со знаком #6
Дописал в коде проверку, но в ифе нехочет сравнивать минус с минусом(
C++
1
2
3
4
5
6
7
8
zn1 = "1+3i";
    zn2 = "4-5i";
    int r1 = atoi(&zn1[0]);
    int r2 = atoi(&zn2[0]);
    //45 '-'
    int i1, i2;
    if (&zn1[1] == "-"){ i1 = atoi(&zn1[1,2]) * (-1); } else { i1 = atoi(&zn1[1,2]); }
    if (&zn2[1] == "-"){ i2 = atoi(&zn2[1,2]) * (-1); } else { i2 = atoi(&zn2[1,2]); }
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.09.2013, 20:13     из char в int со знаком #7
Цитата Сообщение от beats Посмотреть сообщение
Дописал в коде проверку, но в ифе нехочет сравнивать минус с минусом(
Это что за извраты? Глядя на ваш код, глаза сломать можно, и это в такой тривиальной ситуации. Учитесь оформлять, ведь среди программистов, которые будут читать ваши изваяния, почти наверняка встретятся маньяки, которые будут знать, где вы живете
В вашем конкретном случае, это будет выглядеть так:
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>
#include <cstdlib>
using namespace std;
 
int main(void)
{
    const char *zn1 = "1+3i";
    const char *zn2 = "4-5i";
    int re1 = 0, re2 = 0;
    int im1 = 0, im2 = 0;
 
    re1 = atoi(zn1);
    im1 = atoi(zn1+1);
 
    re2 = atoi(zn2);
    im2 = atoi(zn2+1);
 
    cout <<re1 <<' ' <<im1 <<'\n'
        <<re2 <<' ' <<im2 <<endl;
    
    return 0;
}
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
23.09.2013, 20:22  [ТС]     из char в int со знаком #8
gromo, неразабравшись в ситуации делаешь выводы.
Я указал лишь кусок программы, const char в моем случае неприменимы.
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.09.2013, 20:29     из char в int со знаком #9
Цитата Сообщение от beats Посмотреть сообщение
неразабравшись в ситуации делаешь выводы.
ну это твои проблемы, что ты кусок указываешь, телепаты в отпуске.

Если кому понадобится, общий случай:
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
41
42
43
44
45
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main( int argc, char* argv[] )
{
    const char *zn1 = "168365+43i";
    const char *zn2 = "421-590678i";
    int re1 = 0, re2 = 0;
    int im1 = 0, im2 = 0;
    int signIndex = 0;
 
    const char *zn1_copy = zn1;
    const char *zn2_copy = zn2;
 
    // zn1
    while(*zn1_copy)
    {
        if(*zn1_copy == '+' || *zn1_copy == '-')
            break;
        ++signIndex;
        ++zn1_copy;
    }
    re1 = atoi(zn1);
    im1 = atoi(zn1+signIndex);
    signIndex = 0;
    //------------------------
 
    //zn2
    while(*zn2_copy)
    {
        if(*zn2_copy == '+' || *zn2_copy == '-')
            break;
        ++signIndex;
        ++zn2_copy;
    }
    re2 = atoi(zn2);
    im2 = atoi(zn2+signIndex);
    //--------------------------------------
 
    cout <<re1 <<' ' <<im1 <<'\n'
        <<re2 <<' ' <<im2 <<endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 20:34     из char в int со знаком
Еще ссылки по теме:

из int в char* - C++
Просьба помочь перевести переменную типа int в char*. Вот кусок кода, но он переводит в char и в итоге не записывает в текстовый файл. ...

Int to char - C++
Смотрел в инете примеры int i=5992; char number u; u=(char)i; cout &lt;&lt;u&lt;&lt;endl; Выходит всякое безобразие.

Char to int - C++
int b = text; text находится цифра допустим 9 как присвоить ее инту? В шарпе же Convert.toint32(text); Добавлено через 1 минуту...

Char в int - C++
Доброго времени суток! Хотел бы спросить следующее: Как организовать массив из русских символов? Суть проблемы: Есть у нас массив...

Конвертация int в char - C++
Как конвертировать int в char

Сравнение char с int - C++
Вводим с клавиатуры двухзначное число и проверяем если первая цифра равна например 7, то выводим сообщение. Пробовал вот так: #include...


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

Или воспользуйтесь поиском по форуму:
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
23.09.2013, 20:34  [ТС]     из char в int со знаком #10
а кто-то говорил о мой код глаза сломать можно
ладно я заюзал std complex, пока пойдет так. спс
Yandex
Объявления
23.09.2013, 20:34     из char в int со знаком
Ответ Создать тему
Опции темы

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