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

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

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

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

09.06.2009, 16:43. Просмотров 39031. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразовать число в строку/строкук в число (C++):

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

Как преобразовать число в строку - C++
Здравствуйте! У меня такой вопрос: Нужно выводить на экран числа.Функция принимает указатель на строку Font->DrawTextA(NULL, ...

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

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

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

Как преобразовать шестнадцатеричное число в строку? - C++
как записать в строку шестнадцатеричное число? например 111111111 в основании 16 в строке должно выглядеть как 4581298449 в основании 10

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

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

Цитата Сообщение от Акелла Посмотреть сообщение
нафига ты ставишь имперсант &?
Потому что иначе будет ...
Код
Invalid conversion from `char' to `char*'
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
09.06.2009, 19:04 #28
oler117, нет друг мой, все правильно я тебе пишу это у тебя где то косяк
а на счет указателей -через указатель ты работаешь с обратной функцией -перевода строки в число=)
0
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.
0
Акелла
Сонный металюга
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 в одинарные кавычки -может поможет?=)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2009, 19:24
Привет! Вот еще темы с ответами:

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

Преобразовать число int в строку прописью char - C++
Например, вводим 40, 3 должно выдать sorok rubley tridcat kopeek. Пересмотрел много задач с похожей тематикой, но во-первых, ни одна не...

Подскажите, как преобразовать строку с IP адресом в число и обратно - C++
Есть IP адрес в std::string &quot;192.168.1.1&quot;, нужно преобразовать его в число, а IP адрес числом преобразовать обратно, не используя сторонних...

как преобразовать шестнадцатеричную строку в целое десятичное число - C++
как преобразовать данную шестнадцатеричную строку в целое десятичное число (ни как не могу понять) Добавлено через 10 минут как...


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

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
09.06.2009, 19:24
Ответ Создать тему
Опции темы

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