Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/315: Рейтинг темы: голосов - 315, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
1

Преобразовать число в строку/строкук в число

09.06.2009, 16:43. Показов 62823. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Обьясните, как преобразововать число в строку и наоборот. Искал в гугле, но конкретного ответа так и не получил (все, что узнал, что есть много методов и все они плохие ).
И еще одно... Как вообще обьявляется строка, а не символ??? Как обьявить переменную, которой можно присвоить "qwerty" и получить при выводе "qwerty", а не "q"?!

P.S.: если кто-то знает, дайте плз ссылку, где есть инфа о строковых функциях (типа delete, insert, pos, concat,...).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2009, 16:43
Ответы с готовыми решениями:

Преобразовать строку содержащую шестнадцатеричное число в десятичное число типа INT
TCHAR string = "A7D"; ... INT value = 2685; Как преобразовать?

Преобразовать строку, содержащую произвольную последовательность нулей и единиц (двоичное число), в целое число
Помогите пожалуйста с заданием Написать функцию, которая преобразует строку, содержащую...

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д.
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число»,...

Как преобразовать число в строку
Здравствуйте! У меня такой вопрос: Нужно выводить на экран числа.Функция принимает указатель на...

42
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:36 21
Author24 — интернет-сервис помощи студентам
объясню на пальцах как пользовтаься этой функцией:
C++
1
2
3
4
5
int a=555;
char ch[4];
for(int i=0;i<4;i++)
ch[i]=0;
itoa(a,ch,10);
Добавлено через 1 минуту 56 секунд
кстати нафига у тебя в мейне стоит принимать данные из командной строки если ты ими не пользуешься?=))) убери нафиг!



Цитата Сообщение от oler117 Посмотреть сообщение
генерируется само. Я даже не знаю, что это... Но там без ".h".
мдя. библиотеки это милый мой.. стандартные библиотеки в которых храняться функции используемые тобой
0
Заказ софта
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:43 22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char * argv [])
{
    char a;
    int i = 65;
    a = (char)i;
    
    printf("%c\n", a);
    system("PAUSE");
    
    return 0;
}
Добавлено через 5 минут 2 секунды
Ты гонишь ?
Что это:

C++
1
    itoa(i, &a[3], 10);
ыыы
0
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:47 23
Цитата Сообщение от Search.. Посмотреть сообщение
itoa(i, &a[3], 10);
даже елси так делать -уже неправильно!
2 ошибки - для строки нудно на 1 элемент больше в массиве - присутствует символ конца строки
и нафига ты ставишь имперсант &? это оператор получения адреса
0
Заказ софта
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:47 24
Вообще-то прототипы функции)
0
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:48 25
Search.., хорошо, прототипы функйций=0 так или иначе они родимые=)
0
Заказ софта
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:50 26
Акелла: Это я ставлю ? ыыы
Это афтар их зачем-то ставит...

Афтар ! Это не правильно:

C++
1
itoa(i, &a[3], 10);
Если тебе и нужно это объявить, то вот как правильно это сделать:

C++
1
2
3
4
const int N = 3;
for(int j = 0; j < N; j++) {
itoa(i, a[j], 10);
}
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:55  [ТС] 27
Цитата Сообщение от Акелла Посмотреть сообщение
мдя. библиотеки это милый мой.. стандартные библиотеки в которых храняться функции используемые тобой
Я знаю, что это библиотеки!!! Я не знаю, что за библиотека (и какие в ней ф-ции/свойства) <cstdlib> и я не уверен, что это библиотека, а не идентификатор, поскольку там не стоит ".h" !

Цитата Сообщение от Search.. Посмотреть сообщение
Ты гонишь ?
Что это:
Сорри за тупость... Я новичок в С/С++, по этому такие штуки, как указатели для меня пока остаются непонятными...

Цитата Сообщение от Акелла Посмотреть сообщение
нафига ты ставишь имперсант &?
Потому что иначе будет ...
Код
Invalid conversion from `char' to `char*'
0
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 19:04 28
oler117, нет друг мой, все правильно я тебе пишу это у тебя где то косяк
а на счет указателей -через указатель ты работаешь с обратной функцией -перевода строки в число=)
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 19:20  [ТС] 29
Где здесь ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    char ch[3];
    unsigned int n=0;
    for(int i=100; i<1000; i++) {
            itoa(i,ch,10);
            if (i%7==0 && strchr(ch, "7")!=NULL) n++;
    };
    
    cout << n << endl;
    system("PAUSE");
    return 0;
}
Подозреваю, что в strchr(ch, "7")!=NULL.
Это типа надо найти количество 3-значных чисел, что содержат цифру 7 и при этом делятся на 7.
0
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 19:24 30
явная ошибка:
C++
1
if (i%7==0 && strchr(ch, "7")!=NULL) n++;
запиши так:
C++
1
if (((i%7)==0) && (strchr(ch, "7")!=NULL)) n++;
хотя я не понимаю в чем фишка -просто с логикой ммог быть прокол без скобок

Добавлено через 1 минуту 0 секунд
Цитата Сообщение от oler117 Посмотреть сообщение
Подозреваю, что в strchr(ch, "7")!=NULL.
Это типа надо найти количество 3-значных чисел, что содержат цифру 7 и при этом делятся на 7.
заключи 7 в одинарные кавычки -может поможет?=)
0
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 19:25 31
А разве не должно быть strchr(ch, '7')!=NULL вместо strchr(ch, "7")!=NULL !?!?!
0
Заказ софта
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 19:38 32
Ты же искать собрался один символ. А когда ищешь один символ, нужно его брать в такие ковычки ' '. А вот, если бы ты, к примеру, записал такую функцию:

C++
1
strstr(ch, "7");
То это было бы синтаксически правильно и работаспособно ! Т.к ищется подстрока... А строки помещают в такие ковычки " ".

Надеюсь, я понятно излогаю)
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 19:51  [ТС] 33
Цитата Сообщение от Акелла Посмотреть сообщение
заключи 7 в одинарные кавычки -может поможет?=)
Спасибо! Помогло =)
0
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 19:52 34
А когда в одинарных, эт типа константа?
когда в одинарных, эт типа символ.
сhar a='1'; - символ
сhar *b="12345"; - строка
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 20:34  [ТС] 35
Извините форумчане, что я нуб в этом, но что делать если мне заранне неизвестна длина строки, и нужно выполить преобразование из числа (введенного с клавиатуры) в строку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int n;
    // char ch[?];
    cout << "Enter N>99 : ";
    cin >> n;
    // itoa(i,ch,10);
    cout << ch << endl;
    system("PAUSE");
    return 0;
}
0
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 20:39 36
Извините форумчане, что я нуб в этом, но что делать если мне заранне неизвестна длина строки, и нужно выполить преобразование из числа (введенного с клавиатуры) в строку?
Можно заранее зарезервировать больше памяти под строку...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int n;
    char ch[100];
    cout << "Enter N>99 : ";
    cin >> n;
    itoa(n,ch,10);
    cout << ch << endl;
    system("PAUSE");
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 20:52  [ТС] 37
Да это я и сам знаю, но вроде это считается нехорошо лишнюю память выделять.
Если другого метода нет, то... придется.
0
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 20:53 38
Да это я и сам знаю, но вроде это считается нехорошо лишнюю память выделять.
Если другого метода нет, то... придется.
Можно сделать динамический масив, тоись указатиль на строку...

Пробуй так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int n;
    char *ch;
    cout << "Enter N>99 : ";
    cin >> n;
    itoa(n,ch,10);
    cout << ch << endl;
    system("PAUSE");
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 21:08  [ТС] 39
Пробовал. После ввода строки вылетает "Обнаружена ошибка. Приложение будет закрыто....... и т.д........"
0
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 21:12 40
Пробовал. После ввода строки вылетает "Обнаружена ошибка. Приложение будет закрыто....... и т.д........"
А так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int n;
    cout << "Enter N>99 : ";
    cin >> n;
    //здесь надо вычеслить сколько n занимает символов...
    char *ch=new char[количество];
    itoa(n,ch,10);
    cout << ch << endl;
    system("PAUSE");
    free(ch);
    return 0;
}
Но тут еще надо будет щитать сколько число символов занимает...
0
09.06.2009, 21:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2009, 21:12
Помогаю со студенческими работами здесь

Возможно ли преобразовать в число, строку вида:
Если дана строка, например, (1+4+5+7), она может быть преобразована в число?

Как преобразовать большое число в строку
Делаю такое преобраование char szbuff; double X=3292373930; sprintf(szbuff, &quot;%g&quot;, X); string...

Как преобразовать шестнадцатеричное число в строку?
как записать в строку шестнадцатеричное число? например 111111111 в основании 16 в строке должно...

Как преобразовать строку цифр в число?
Как преобразовать строку цифр в число?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru