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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 300, средняя оценка - 5.00
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
#1

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

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

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

P.S.: если кто-то знает, дайте плз ссылку, где есть инфа о строковых функциях (типа delete, insert, pos, concat,...).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2009, 16:43     Преобразовать число в строку/строкук в число
Посмотрите здесь:

C++ Как строку можно преобразовать в число???
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. C++
C++ Как преобразовать число в строку
C++ Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку.
C++ Преобразовать строку->число->строку
C++ как преобразовать шестнадцатеричную строку в целое десятичное число
C++ Как преобразовать строку цифр в число?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:36     Преобразовать число в строку/строкук в число #21
объясню на пальцах как пользовтаься этой функцией:
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".
мдя. библиотеки это милый мой.. стандартные библиотеки в которых храняться функции используемые тобой
Search..
Заказ софта
340 / 185 / 10
Регистрация: 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);
ыыы
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:47     Преобразовать число в строку/строкук в число #23
Цитата Сообщение от Search.. Посмотреть сообщение
itoa(i, &a[3], 10);
даже елси так делать -уже неправильно!
2 ошибки - для строки нудно на 1 элемент больше в массиве - присутствует символ конца строки
и нафига ты ставишь имперсант &? это оператор получения адреса
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:47     Преобразовать число в строку/строкук в число #24
Вообще-то прототипы функции)
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 18:48     Преобразовать число в строку/строкук в число #25
Search.., хорошо, прототипы функйций=0 так или иначе они родимые=)
Search..
Заказ софта
340 / 185 / 10
Регистрация: 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);
}
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:55  [ТС]     Преобразовать число в строку/строкук в число #27
Цитата Сообщение от Акелла Посмотреть сообщение
мдя. библиотеки это милый мой.. стандартные библиотеки в которых храняться функции используемые тобой
Я знаю, что это библиотеки!!! Я не знаю, что за библиотека (и какие в ней ф-ции/свойства) <cstdlib> и я не уверен, что это библиотека, а не идентификатор, поскольку там не стоит ".h" !

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

Цитата Сообщение от Акелла Посмотреть сообщение
нафига ты ставишь имперсант &?
Потому что иначе будет ...
Код
Invalid conversion from `char' to `char*'
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 19:04     Преобразовать число в строку/строкук в число #28
oler117, нет друг мой, все правильно я тебе пишу это у тебя где то косяк
а на счет указателей -через указатель ты работаешь с обратной функцией -перевода строки в число=)
oler117
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.
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 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 в одинарные кавычки -может поможет?=)
ZVolodumur
49 / 49 / 3
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 19:25     Преобразовать число в строку/строкук в число #31
А разве не должно быть strchr(ch, '7')!=NULL вместо strchr(ch, "7")!=NULL !?!?!
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 19:38     Преобразовать число в строку/строкук в число #32
Ты же искать собрался один символ. А когда ищешь один символ, нужно его брать в такие ковычки ' '. А вот, если бы ты, к примеру, записал такую функцию:

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

Надеюсь, я понятно излогаю)
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 19:51  [ТС]     Преобразовать число в строку/строкук в число #33
Цитата Сообщение от Акелла Посмотреть сообщение
заключи 7 в одинарные кавычки -может поможет?=)
Спасибо! Помогло =)
ZVolodumur
49 / 49 / 3
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 19:52     Преобразовать число в строку/строкук в число #34
А когда в одинарных, эт типа константа?
когда в одинарных, эт типа символ.
сhar a='1'; - символ
сhar *b="12345"; - строка
oler117
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;
}
ZVolodumur
49 / 49 / 3
Регистрация: 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;
}
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 20:52  [ТС]     Преобразовать число в строку/строкук в число #37
Да это я и сам знаю, но вроде это считается нехорошо лишнюю память выделять.
Если другого метода нет, то... придется.
ZVolodumur
49 / 49 / 3
Регистрация: 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;
}
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 21:08  [ТС]     Преобразовать число в строку/строкук в число #39
Пробовал. После ввода строки вылетает "Обнаружена ошибка. Приложение будет закрыто....... и т.д........"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2009, 21:12     Преобразовать число в строку/строкук в число
Еще ссылки по теме:

Как преобразовать большое число в строку C++
Подскажите, как преобразовать строку с IP адресом в число и обратно C++
C++ Как преобразовать шестнадцатеричное число в строку?
C++ Возможно ли преобразовать в число, строку вида:
C++ Преобразовать число int в строку прописью char

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

Или воспользуйтесь поиском по форуму:
ZVolodumur
49 / 49 / 3
Регистрация: 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;
}
Но тут еще надо будет щитать сколько число символов занимает...
Yandex
Объявления
09.06.2009, 21:12     Преобразовать число в строку/строкук в число
Ответ Создать тему
Опции темы

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