Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
1

Int To Str

14.11.2013, 10:04. Показов 2182. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, товарищи. Подскажите плиз.

Есть структура: SSklad, массив SSklad Sklad[7];, и элемент массива Sklad[i].god (в структуре описан как int)

Не могу перевести Sklad[i].god в String
itoa не помогает.. вариантов много перепробовал.

Подскажите пжалста как корректно выполнить такое преобразование?

З.Ы. пишу в Визуал студии

// Заранее благодарю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 10:04
Ответы с готовыми решениями:

Int to Str
Подскажите, пожалуйста, как число преобразовать в string (не char)

перевод int в str
подскажите пожалуйста как перевести int в тип string что бы потом узнать длину переведенный строки...

Equal(str.begin(), str.end(), str.rbegin()
#include <iostream> #include <string> using namespace std; string str; int main() {...

Char const* str to vector<unsigned int>
Добрый день! На visual studio 2012 не работает код: char const* str{ &quot;1 2 4 12 5123&quot; };...

15
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.11.2013, 10:08 2
albannikov, Используй поток stringstream
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
int a=10;
string s;
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
cout <<s<<endl;
 
return 0
}
1
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
14.11.2013, 11:43  [ТС] 3
Цитата Сообщение от ninja2 Посмотреть сообщение
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
В визуале не работает (куча ошибок)

___________
Пробую так ещё:

C++
1
2
3
4
        int a = Sklad[i].god;
        string s;
        char ss;
        s = itoa(a,ss,10);
itoa: невозможно преобразовать параметр 2 из "char" в "char *"
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 11:45 4
C++
// c++11
string s = to_string(god);
0
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
14.11.2013, 11:50  [ТС] 5
Цитата Сообщение от programina Посмотреть сообщение
string s = to_string(god);
to_string: неоднозначный вызов перегруженной функции
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:08 6
C++
#include <cstdio>
 
int main() 
{
  int god = 2013;
  char s[32];
 
  sprintf(s, "%d", god);
  printf("%s\n", s);
}
Добавлено через 2 минуты
Цитата Сообщение от albannikov Посмотреть сообщение
to_string: неоднозначный вызов перегруженной функции
C++11
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.11.2013, 12:11 7
В визуал студио 2010 экспресс работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
int a=10;
string s;
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
cout <<s<<endl;
 
return 0;
}
Скачай vs2010
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:12 8
Цитата Сообщение от albannikov Посмотреть сообщение
itoa: невозможно преобразовать параметр 2 из "char" в "char *"
char ss[32];

И вообще, откройте уже учебник или гугл!
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.11.2013, 12:19 9
albannikov, можно вручную по разряду переводить, только тебе нужно для начала из числа выделить разряд(одиночный символ) от например число int b(3) можно перевести в char так char k=((char)b+'0'); Просто число разбей на цифры и затем каждую цифру переведи в чар, и потом из этих чар собери строку.
0
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
14.11.2013, 12:29  [ТС] 10
Цитата Сообщение от ninja2 Посмотреть сообщение
Скачай vs2010
10-ая стоит.

Цитата Сообщение от programina Посмотреть сообщение
char ss[32];
Всё заработало, спасибо, а можно разжевать пожулуйста, почему обязательно как символьный массив объявлять?
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.11.2013, 12:30 11
Цитата Сообщение от albannikov Посмотреть сообщение
10-ая стоит.
И у меня, а у тебя экспресс??
У меня код что выше работает, попробуй мб щас заработает!?
1
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:39 12
Цитата Сообщение от albannikov Посмотреть сообщение
10-ая стоит.
Всё заработало, спасибо, а можно разжевать пожулуйста, почему обязательно как символьный массив объявлять?
потому что функция принимает строковый аргумент, а не символьный.

строка - это "abcdef"
символ - это 'a'

ps: http://www.cplusplus.com/reference/cstdlib/itoa/
pps: лучше пользоваться sprintf()
1
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
14.11.2013, 14:39  [ТС] 13
Всем Спасибо, сделал что хотел сделать.

Добавлено через 1 час 56 минут
Возник новый вопрос. Дабы не создавать новой темы спрошу тут, ибо ситуация аналогичная.
Перевожу из float в String
C++
1
_gcvt(b,5,s);
Вещественные числа конвертирует отлично, но вот если число целое, то выводит на экран дополнительную точку.
т.е. в переменной "12" , а он возвращает "12."

Подскажите пжалста, как получить число без точки (если оно целое)?
Збасибо заранее
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.11.2013, 14:50 14
Цитата Сообщение от albannikov Посмотреть сообщение
Подскажите пжалста, как получить число без точки (если оно целое)?
Збасибо заранее
Просто
int a(0);
double b=3.5555;
a=b и у тебя получиться в а только 3

Добавлено через 2 минуты
Если хочешь округлить, то нужно 0.5 добавить к числу типа float, а затем уже переменной типа int присваивать.

Добавлено через 2 минуты
А да не прочитал что нужно просто удали ее нафиг из строки

Добавлено через 2 минуты
Отак сделай str.resize(str.size()-1) и точка в конце пропадет.
0
12 / 12 / 3
Регистрация: 20.12.2012
Сообщений: 100
14.11.2013, 14:56  [ТС] 15
Решил так сделать:
C++
1
sprintf(s, "%.1f", b);  // Конвертируем из флоат в стринг
Теперь целые числа выводятся с так "7.0" (было "7.")
Просто числа выводятся в ряд , надо было ровно вывести
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 15:32 16
Цитата Сообщение от albannikov Посмотреть сообщение
Решил так сделать:
C++
1
sprintf(s, "%.1f", b);  // Конвертируем из флоат в стринг
Теперь целые числа выводятся с так "7.0" (было "7.")
Просто числа выводятся в ряд , надо было ровно вывести
Зачем? У вас ведь год - целое число.
Для отступа делайте так:
C++
#include <cstdio>
 
int main() 
{
  int god = 12;
  char s[32];
 
  sprintf(s, "%d", god);
  printf("%4s", s);
}
Добавлено через 16 минут
Не заметила новый вопрос, но суть печати та же, надо только поменять %d на %1.1f
0
14.11.2013, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2013, 15:32
Помогаю со студенческими работами здесь

Функции str.size() и str.length() - в чем их разница?
Существует 2 функции для определения размера строки в string str.size() и str.length() В чем их...

Функция: по заданной строке Str сформулировать новую строку, состоящую только из цифр, входящих в Str
Написать и протестировать функцию,которая по заданной строке Str формулирует новую строку,состоящую...

как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str
как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str
Помогите ребят!!!!препод задачи дал для аттестации,сделал фактически все,кроме этой: &quot;Написать и...


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

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