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

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

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

Обьясните, как преобразововать число в строку и наоборот. Искал в гугле, но конкретного ответа так и не получил (все, что узнал, что есть много методов и все они плохие ).
И еще одно... Как вообще обьявляется строка, а не символ??? Как обьявить переменную, которой можно присвоить "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
121 / 121 / 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
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
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
Заказ софта
342 / 187 / 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
Заказ софта
342 / 187 / 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
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
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
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
49 / 49 / 4
Регистрация: 21.05.2009
Сообщений: 156
09.06.2009, 18:09 15
Меня вот заинтересовало.. А в этом примере можно сделать с помощью обсуждавшегося ранее union'а или я сейчас бред несу?
Скорее всего бред...
0
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
Заказ софта
342 / 187 / 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
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
09.06.2009, 18:24  [ТС] 18
Не пашет. "Обнаружена ошибка. Приложение будет закрыто..."
0
Заказ софта
342 / 187 / 21
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 18:25 19
Ну я же и говорю, замени ее на:

C++
1
a = (char*) i
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2009, 18:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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