С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/231: Рейтинг темы: голосов - 231, средняя оценка - 4.94
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
1

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

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

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

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

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

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

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

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

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

42
EnzoMatrix
120 / 120 / 14
Регистрация: 14.03.2009
Сообщений: 462
09.06.2009, 16:50 2
строка объявляется как массив символов
C++
1
2
3
char stroka[50];//строка из 50 симвлов, захочешь объявишь динамически
strcpy(stroka,"qwerty");//забиваем строку
cout<<stroka//пишем строку
другой вариант- юзать string
C++
1
2
3
string stroka;//действия те же
stroka="qwerty";
cout<<stroka;
Добавлено через 39 секунд
Цитата Сообщение от oler117 Посмотреть сообщение
P.S.: если кто-то знает, дайте плз ссылку, где есть инфа о строковых функциях (типа delete, insert, pos, concat,...).
1. читай книжки
2. раз названия знаешь, то или гугля, или хелп
1
Даемоник
42 / 42 / 8
Регистрация: 22.05.2009
Сообщений: 97
09.06.2009, 16:54 3
У Шилдта есть все функции, в том числе и строковые. В Справочнике программиста посмотри.
0
ZVolodumur
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 17:05 4
oler117, Здесь http://politeh.pp.ua/load/24-1-0-115 Или здесь есть http://politeh.pp.ua/load/0-0-0-140-20 - 8-мая лаба. Там все функции.
1
Акелла
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:06 5
если ты пишешь в Си под дос -то етсь на борландовских компиляторах, не вижуалки короче -фенкции етсь
itoa() - числов строку; преобразовывает- int ->char
ltoa() преобразовываетlong->char

в обратные им atoi, atol
2
ZVolodumur
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 17:12 6
Цитата Сообщение от Акелла Посмотреть сообщение
если ты пишешь в Си под дос -то етсь на борландовских компиляторах, не вижуалки короче -фенкции етсь
itoa() - числов строку; преобразовывает- int ->char
ltoa() преобразовываетlong->char

в обратные им atoi, atol
К выше сказаному:
В C++ Builder есть IntToStr() и StrToInt();
0
Search..
Заказ софта
340 / 185 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 17:16 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    int ntest;
    char *wtest;
    char wline[] = "Microsoft"; /* Преобразование этого названия */
    
    ntest = (int)wline;
    printf("Out of line in number: %d\n", ntest);
    wtest = (char*)ntest;
    printf("Out of number in line: %s\n", wtest);
 
    return 0;
}
1
Акелла
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:17 8
Цитата Сообщение от ZVolodumur Посмотреть сообщение
К выше сказаному:
В C++ Builder есть IntToStr() и StrToInt();
ну=) что в принципе не сложно обнаружить если знаешь что такие функции в принципе должны быть=)
хвала стандартным библиотекам=)
1
Search..
Заказ софта
340 / 185 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 17:21 9
Возможно, ты имел ввиду это...:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h> /* Для strlen */
#include <locale.h> /* Для русского языка */
 
int main(int argc, char * argv [])
{
    setlocale(LC_ALL,"Rus"); /* Для русского языка */
    char wline[] = "Microsoft"; /* Преобразование этого названия */
 
    printf("%d\n", strlen(wline)); /* Покажет сколько символов в слове Microsoft */
 
    return 0;
}
Добавлено через 1 минуту 36 секунд
И нафиг я русский включил, если я его не использую...
Мда..
1
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 17:49  [ТС] 10
В общем об itoa(), atoi() и остальном.... Нашел вот такое:
Код
char* itoa(int value, char* string, int radix);
wchar_t* _itow(int value, wchar_t* string, int radix);
char* ltoa(long value, char* string, int radix);
char* _ltoa(long value, char* string, int radix);
wchar_t* _ltow(long value, wchar_t* string, int radix);
char* ultoa(unsigned long value, char* string, intradix);
wchar_t* _ultow(unsigned long value, wchar_t* string, int radix);
Обьясните, что это за параметр такой radix ?
А есть какой-то универсальный метод преобразования, который будет работать, как, скажем, в Dev-C++ и Borland C++, так и в VisualStudio ?
Почему нельзя (не работает) так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int i;
    char a;
    i = 555;
    a = (char) i;
    cout << a << endl;
    system("PAUSE");
    return 0;
}
0
ZVolodumur
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 17:50 11
Обьясните, что это за параметр такой radix ?
Система числения.
0
Акелла
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 17:53 12
нуу. я лично не знаю на чем вы молодой человек пишите=))) но вроде
C++
1
#include <cstdlib>
нужно дописывать что это библиотченое расширение то етсь
C++
1
#include <cstdlib.h>
а вот тут:
C++
1
2
i = 555;
    a = (char) i;
ты просто делаеш ьпреобразование типов причем неправильно. у тебя i содержит число.. когда ты ег опытаешься присвоить символьной переменной, она ег осчитает кодом какого то символа из таблицы символов ASCII и ищет - но там их всего 256.... он не понимает откуда ему брать твое значение
0
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 17:55  [ТС] 13
Что такое radix уже сам нашел: система счисления (2<=radix<=36)
0
Даемоник
42 / 42 / 8
Регистрация: 22.05.2009
Сообщений: 97
09.06.2009, 18:03 14
Меня вот заинтересовало.. А в этом примере можно сделать с помощью обсуждавшегося ранее union'а или я сейчас бред несу?
0
ZVolodumur
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 18:09 15
Меня вот заинтересовало.. А в этом примере можно сделать с помощью обсуждавшегося ранее union'а или я сейчас бред несу?
Скорее всего бред...
0
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:16  [ТС] 16
Акелла, я пишу, а точнее использую Dev-C++ и там
C++
1
#include <cstdlib>
генерируется само. Я даже не знаю, что это... Но там без ".h".
Цитата Сообщение от Акелла Посмотреть сообщение
он не понимает откуда ему брать твое значение
Т.е. надо вот так?
C++
1
2
i = 555;
    a = (char) *i;
0
Search..
Заказ софта
340 / 185 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:22 17
А i - это указатель ?

Добавлено через 2 минуты 24 секунды
Так, наверное:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int i;
    char *a;
    i = 555;
    a = (char) i;
    cout << a << endl;
    system("PAUSE");
    return 0;
}
Добавлено через 1 минуту 24 секунды
А в эту строку:

C++
1
a = (char) i;
Заменить на эту:

C++
1
a = (char*) i;
0
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:24  [ТС] 18
Не пашет. "Обнаружена ошибка. Приложение будет закрыто..."
0
Search..
Заказ софта
340 / 185 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:25 19
Ну я же и говорю, замени ее на:

C++
1
a = (char*) i
0
oler117
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:28  [ТС] 20
Не пашет. "Обнаружена ошибка. Приложение будет закрыто..."

Добавлено через 2 минуты 11 секунд
Ладно, а почему здесь результатом есть сначала какие-то три иероглифа, а потом только "555" :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdlib>
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    unsigned int i;
    char a[3];
    i = 555;
    itoa(i, &a[3], 10);
 
    cout << a << endl;
    system("PAUSE");
    return 0;
}
0
09.06.2009, 18:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2009, 18:28

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

Как преобразовать большое число в строку
Делаю такое преобраование char szbuff; double X=3292373930;...

Как строку можно преобразовать в число???
Написать функцию, которая анализирует заданную строку и возвращает: · 1, если...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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