Как записать int в string c
Спасибо! Попробую.
Можно еще один вопросик в догонку?
Как перевести число из DEC в HEX и наоборот?
В VB, например, есть такая функция Hex().
Re[3]: int в string
| От: | Mishka |
| Дата: | 13.05.02 15:02 |
| Оценка: |
Здравствуйте Аноним, Вы писали:
А>Как перевести число из DEC в HEX и наоборот?
А>В VB, например, есть такая функция Hex().
А зачем? Вот пример:
#include int main() < int x = 0xFF; int y = 255; std::cout " " return 0; >
Re[4]: int в string
| От: | epitaph |
| Дата: | 13.05.02 15:05 |
| Оценка: |
Здравствуйте Mishka, Вы писали:
M>Здравствуйте Аноним, Вы писали:
А>>Как перевести число из DEC в HEX и наоборот?
А>>В VB, например, есть такая функция Hex().
M>А зачем? Вот пример:
M>
M>#include M>int main() M> < M>int x = 0xFF; M> int y = 255; M> std::cout " " return 0; M>> M>
Спасибо. Буду дерзать дальше.
Re[5]: int в string
| От: | epitaph |
| Дата: | 13.05.02 15:17 |
| Оценка: |
Здравствуйте epitaph, Вы писали:
E>Здравствуйте Mishka, Вы писали:
M>>Здравствуйте Аноним, Вы писали:
А>>>Как перевести число из DEC в HEX и наоборот?
А>>>В VB, например, есть такая функция Hex().
M>>А зачем? Вот пример:
M>>
M>>#include M>>int main() M>>< M>> int x = 0xFF; M>> int y = 255; M>> std::cout " " > return 0; M>>> M>>
E>Спасибо. Буду дерзать дальше.
Да, как объявить понятно, а как перевести y = 255 в HEX и получить ответ, например, в x?
Re[6]: int в string
| От: | Mishka |
| Дата: | 13.05.02 15:55 |
| Оценка: |
Здравствуйте epitaph, Вы писали:
E>Да, как объявить понятно, а как перевести y = 255 в HEX и получить ответ, например, в x?
Легко:
x = y;
Потому что всё равно числа там храняться как последовательность 0 и 1.
Я вообщем-то потому и спрашивал «а зачем». На экран надо вывести? Так это другой вопрос.
Re[7]: int в string
| От: | epitaph |
| Дата: | 13.05.02 16:00 |
| Оценка: |
Здравствуйте Mishka, Вы писали:
M>Здравствуйте epitaph, Вы писали:
E>>Да, как объявить понятно, а как перевести y = 255 в HEX и получить ответ, например, в x?
M>Легко:
M>x = y;
M>Потому что всё равно числа там храняться как последовательность 0 и 1.
M>Я вообщем-то потому и спрашивал «а зачем». На экран надо вывести? Так это другой вопрос.
Да, надо вывести полученный результат на экран.
В принцыпе есть форма а в ней два текстовых поля —
в одном DEC, а в другом HEX.
Re: int в string
| От: | ioni |
| Дата: | 13.05.02 18:11 |
| Оценка: |
Здравствуйте epitaph, Вы писали:
E>Помогите чайнику, ПЛИЗЗЗ.
E>Как преобразовать тип INT в STRING?
более общий способ туда и обратно
Re[4]: int в string
| От: | Алекс | http://wise-orm.com |
| Дата: | 14.05.02 02:34 | |
| Оценка: |
Здравствуйте Mishka, Вы писали:
M>Здравствуйте Аноним, Вы писали:
А>>Как перевести число из DEC в HEX и наоборот?
А>>В VB, например, есть такая функция Hex().
M>А зачем? Вот пример:
M>
M>#include M>int main() M> < M>int x = 0xFF; M> int y = 255; M> std::cout " " return 0; M>> M>
Чуть-чуть не правильно:
int main() < int x = 0xFF; int y = 255; std::cout hex " " dec return 0;
Re[5]: int в string
| От: | Mishka |
| Дата: | 14.05.02 07:20 |
| Оценка: |
Здравствуйте Алекс, Вы писали:
А>Чуть-чуть не правильно:
А>
А>int main() А> < А>int x = 0xFF; А> int y = 255; А> std::cout hex " " dec return 0; А>
Да не-е. Всё там правильно. Я просто хотел показать, что нет никакой разницы как хранить int в десятичной или в шестнадцатиричной форме.
Re[8]: int в string
| От: | Mishka |
| Дата: | 14.05.02 07:23 |
| Оценка: |
#include using namespace std; void main() < int n = 255; char buffer[20]; _itoa(n, buffer, 16); cout
Re: Re: c++, преобразование int в string
Спасибо. А что предпочтительнее с точкие зрения производитеьности/правильности?
anonymous
( 06.12.04 10:36:48 MSK )
Re: c++, преобразование int в string
нужно выделить место под строчку! если дленна строки будет не больше len, то надо делать так
anonymous
( 06.12.04 10:38:04 MSK )
Ответ на: Re: Re: c++, преобразование int в string от anonymous 06.12.04 10:36:48 MSK

Re: Re: Re: c++, преобразование int в string
> Спасибо. А что предпочтительнее с точкие зрения производитеьности/правильности?
С точки зрения правильности — однозначно вариант с std::stringstream. Кстати его можно записать и в одну строчку:
С производительностью сложнее. С одной стороны, ostringstream не нужно тратить в рантайме время на парсинг строки формата. С другой, ему приходится динамически выделять память под буфер, плюс при возврате его из str() текст копируется, так что имеем еще и накладные расходы на создание std::string. Так что, скорее всего, s(n)printf быстрее.
int19h ★★★★
( 06.12.04 11:18:06 MSK )
Ответ на: Re: Re: c++, преобразование int в string от anonymous 06.12.04 10:36:48 MSK
Re: Re: Re: c++, преобразование int в string
Насчет производительности правильности — это религиозный вопрос. Первый вариант — это С (за исключением std::cout, в С используется printf). Второй вариант — С++.
hapchu ★★
( 06.12.04 11:19:09 MSK )
Ответ на: Re: c++, преобразование int в string от anonymous 06.12.04 10:38:04 MSK

Re: Re: c++, преобразование int в string
Угу, а высвобождать потом память кто будет? Если уж len известна — проще всего объявить локальный массив. Если нет — не забываем free(). Ну и вместо malloc(len) чисто субъективно все же плюсовей будет new char[len].
int19h ★★★★
( 06.12.04 11:22:33 MSK )
Re: c++, преобразование int в string
int i = 5;
ostringstream oss_convert;
oss_convert return oss_convert.str();
LX ★★
( 06.12.04 17:09:41 MSK )
Ответ на: Re: Re: c++, преобразование int в string от int19h 06.12.04 11:22:33 MSK

Re: Re: Re: c++, преобразование int в string
Ога. Теперь еще добавим, что в процессе может например из sprintf’a или из cout’а вылететь exception, память все равно может оказаться не очищеной ;). Может strstream и медленнее, но зато надежнее.
Кофе-брейк #190. Как преобразовать Integer в String. Статические и нестатические внутренние классы в Java


Источник: FreeCodeCampЭто руководство подскажет вам несколько способов преобразования целого числа (integer) в строку (string).Для преобразования переменных из одного типа данных в другой, в языке Java используются различные методы. В случае с конвертацией Integer в String можно применить один из перечисленных ниже способов:
- Использование метода Integer.toString() .
- Использование метода String.valueOf() .
- Использование метода String.format() .
- Использование класса DecimalFormat .
Как преобразовать целое число в строку в Java с помощью Integer.toString()
Метод Integer.toString() принимает целое число для преобразования в качестве параметра. Пример синтаксиса:
Integer.toString(INTEGER_VARIABLE)
Пример кода:
class IntToStr < public static void main(String[] args) < int age = 2; String AGE_AS_STRING = Integer.toString(age); System.out.println("The child is " + AGE_AS_STRING + " years old"); // The child is 2 years old >>
В данном примере мы создали целое число age и присвоили ему значение 2 . Чтобы преобразовать переменную age в строку, мы передали ее в качестве параметра методу Integer.toString(): Integer.toString(age) . Затем мы сохранили это новое строковое значение в строковой переменной с именем AGE_AS_STRING . И наконец, мы объединили новую строковую переменную с другими строками: «The child is » + AGE_AS_STRING + » years old» . Теперь возникает вопрос: возникнет ли ошибка, если мы просто соединим переменную age с этими другими строками без какого-либо преобразования?
class IntToStr < public static void main(String[] args) < int age = 2; System.out.println("The child is " + age + " years old"); // The child is 2 years old >>
Вывод получился такой же, как и в примере, где нам нужно было преобразовать целое число в строку. Но как мы узнаем, действительно ли преобразование типов сработало? Для этого мы можем проверить типы переменных, используя объект getClass() . Примерно вот так:
class IntToStr < public static void main(String[] args) < int age = 2; String AGE_AS_STRING = Integer.toString(age); System.out.println(((Object)age).getClass().getSimpleName()); // Integer System.out.println(AGE_AS_STRING.getClass().getSimpleName()); // String >>
Теперь мы можем убедиться, что при создании переменной age она была Integer , а после преобразования типа стала String .
Как преобразовать целое число в строку в Java с помощью String.valueOf()
Метод String.valueOf() также принимает переменную, которую нужно преобразовать в строку, в качестве параметра.
class IntToStr < public static void main(String[] args) < int age = 2; String AGE_AS_STRING = String.valueOf(age); System.out.println("The child is " + AGE_AS_STRING + " years old"); // The child is 2 years old >>
- Мы создали целое число (integer) с названием age .
- Мы передали целое число age в качестве параметра метода String.valueOf(): String.valueOf(age) .
System.out.println(((Object)age).getClass().getSimpleName()); // Integer System.out.println(AGE_AS_STRING.getClass().getSimpleName()); // String
Как преобразовать целое число в строку в Java с помощью String.format()
Метод String.format() принимает два параметра: спецификатор формата и форматируемую переменную. Вот пример:
class IntToStr < public static void main(String[] args) < int age = 2; String AGE_AS_STRING = String.format("%d", age); System.out.println("The child is " + AGE_AS_STRING + " years old"); // The child is 2 years old >>
В этом примере мы передали методу String.format() два параметра: «%d» и age . «%d» — это спецификатор формата, указывающий, что форматируемая переменная является целым числом. age , который является вторым параметром, будет преобразован в строку и сохранен в переменной AGE_AS_STRING . Также можно проверить типы переменных до и после преобразования:
System.out.println(((Object)age).getClass().getSimpleName()); // Integer System.out.println(AGE_AS_STRING.getClass().getSimpleName()); // String
Как преобразовать целое число в строку в Java с помощью DecimalFormat
Класс DecimalFormat используется для форматирования десятичных чисел в Java. Его можно применять по-разному, но сейчас мы будем использовать его для преобразования целого числа в строку. Перед вами пример:
import java.text.DecimalFormat; class IntToStr < public static void main(String[] args) < int age = 2; DecimalFormat DFormat = new DecimalFormat("#"); String AGE_AS_STRING = DFormat.format(age); System.out.println("The child is " + AGE_AS_STRING + " years old"); // The child is 2 years old System.out.println(((Object)age).getClass().getSimpleName()); // Integer System.out.println(AGE_AS_STRING.getClass().getSimpleName()); // String >>
- Чтобы иметь возможность использовать класс DecimalFormat в конкретном примере, мы импортировали его: import java.text.DecimalFormat; .
- Мы создали целочисленную переменную age .
- Затем мы создали новый объект класса DecimalFormat с названием DFormat .
- Используя объекта метода format() , мы преобразовали age в строку: DFormat.format(age); .
Заключение
В этой статье мы говорили о преобразовании целых чисел в строки в Java. Вы увидели примеры кода с использованием трех разных методов: Integer.toString() , String.valueOf() , String.format() , а также класса DecimalFormat . В каждом из примеров показан процесс преобразования и проверка типа данных переменной до и после преобразования.
Статические и нестатические внутренние классы в Java
Источник: Medium Благодаря этой статье вы узнаете, в чем состоят различия между статическими и нестатическими внутренними классами в Java. В Java нестатические внутренние классы (non-static inner classes, также известные как внутренние классы или внутренние объекты) имеют неявную ссылку на окружающий экземпляр (enclosing instance) внешнего класса. Это означает, что они имеют доступ к переменным экземпляра и методам внешнего класса и могут использоваться для создания нескольких экземпляров внутреннего класса, связанных с разными экземплярами внешнего класса. Давайте рассмотрим следующий код:
class Outer < private int x; class Inner < public void printX() < System.out.println(x); >> > Outer outer1 = new Outer(); outer1.x = 5; Outer.Inner inner1 = outer1.new Inner(); inner1.printX(); // prints 5 Outer outer2 = new Outer(); outer2.x = 10; Outer.Inner inner2 = outer2.new Inner(); inner2.printX(); // prints 10
Здесь у класса Outer есть внутренний класс Inner , у которого имеется метод printX . А он, в свою очередь, печатает значение x из окружающего экземпляра Outer . Код создает два экземпляра Outer ( outer1 и outer2 ) и два экземпляра Inner ( inner1 и inner2 ), каждый из которых связан с разным экземпляром Outer . Когда printX вызывает inner1 и inner2 , он печатает значение x из соответствующего экземпляра Outer . Поскольку нестатические внутренние классы имеют неявную ссылку на окружающий экземпляр, им требуется дополнительная память для хранения этой ссылки. Это означает, что они менее эффективно используют память, чем статические внутренние классы, которые не имеют неявной ссылки на включающий экземпляр и не требуют для этой цели дополнительной памяти. С другой стороны, статические внутренние классы не могут получить доступ к переменным или методам экземпляра внешнего класса, поэтому их возможности ограничены. Они полезны, когда вы хотите определить класс, тесно связанный с внешним классом и не нуждающийся в доступе к его переменным или методам экземпляра. Нестатические внутренние классы (также известные как внутренние классы или внутренние объекты) полезны, когда вы хотите определить класс, который тесно связан с другим классом и имеет доступ к переменным экземпляра и методам внешнего класса.
Использование нестатических внутренних классов
- Когда внутреннему классу необходимо получить доступ к переменным экземпляра или методам внешнего класса, которые не являются static . Поскольку нестатические внутренние классы имеют неявную ссылку на окружающий экземпляр внешнего класса, они могут напрямую обращаться к нестатическим переменным и методам экземпляра.
- Когда вы хотите определить несколько экземпляров внутреннего класса, связанных с разными экземплярами внешнего класса. Например, вы можете захотеть создать нестатический внутренний класс Button для класса Dialog , где каждый экземпляр Button связан с другим экземпляром Dialog и может получить доступ к переменным экземпляра и методам экземпляра Dialog .
- Когда вы хотите определить класс, который используется только в контексте внешнего класса и не предназначен для независимого использования. Доступ к нестатическим внутренним классам возможен только из внешнего класса, поэтому они более инкапсулированы и менее подвержены непреднамеренному использованию.
Использование статических внутренних классов
Мы можем использовать статические внутренние классы, если нам не нужен доступ к каким-либо переменным экземпляра или методам внешнего класса, и по этой причине им не нужно иметь неявную ссылку на окружающий экземпляр внешнего класса. Это делает их более эффективными с точки зрения использования памяти, чем нестатические внутренние классы, которые имеют неявную ссылку на окружающий экземпляр. Допустим, нам нужно спроектировать график, который содержит траектории (edges) и точки пересечения (nodes). Классы Node и Edge тесно связаны с классом Graph и используются только в контексте объекта Graph . Определение их как статических внутренних классов дает понять, что они являются частью класса Graph и не предназначены для независимого использования.
public class Graph < Map nodeMap; public Graph () < nodeMap = new HashMap<>(); > static class Node < String name; List edgeList; public Node(String name) < this.name = name; edgeList = new ArrayList(); >> static class Edge < Node source; Node Destination; String type; public Edge(Node source, Node destination, String type) < this.Destination = destination; this.source = source; this.type = type; >> >
Статические внутренние классы не могут получить доступ к переменным или методам экземпляра Вот пример, иллюстрирующий тот факт, что статические внутренние классы не могут получить доступ к переменным или методам экземпляра внешнего класса:
class Outer < private int x; static class Inner < public void printX() < System.out.println(x); // compilation error: cannot access x >> >
- Создать переменные или методы экземпляра static . Это позволит внутреннему классу обращаться к ним, используя имя внешнего класса (например, Outer.x ).
- Передать экземпляр внешнего класса внутреннему классу и сохранить его в поле. Затем внутренний класс может получить доступ к переменным экземпляра или методам внешнего класса через это поле.
class Outer < private int x; public void setX(int x) < this.x = x; >static class Inner < Outer outer; public Inner(Outer outer) < this.outer = outer; >public void printX() < System.out.println(outer.x); >> > Outer outer = new Outer(); outer.setX(5); Outer.Inner inner = new Outer.Inner(outer); inner.printX(); // prints 5
В данном примере у класса Outer есть нестатический метод setX , который задает значение x , и статический внутренний класс Inner с полем outer типа Outer . У класса Inner есть конструктор, который принимает экземпляр Outer и сохраняет его в поле outer . Затем метод printX класса Inner может получить доступ к полю x экземпляра outer , используя нотацию outer.x .
Как записать int в string c
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.
___________________________________ ___________________________________ _______
[=Правила форума=] _____ [Поиск] _____ [Литература по С++] ____ [Литература. Паскаль]
New Delphi Coder
Форумчанин Подтвердите свой е-майл
Регистрация: 20.07.2008
Сообщений: 874
koma_grusha, может и помогают, но что-то не работают(пишет что нет прототипа)
Sazary, А что значит atoi и c_str метода вроде нет.
Страх это слабость и потому, кто испугался уже побежден.
Регистрация: 19.12.2008
Сообщений: 5,788
| А что значит atoi и c_str метода вроде нет. |
atoi — стандартная функция преобразования си-строки в число (int). Требуется stdlib.h
метод c_str у класса string есть. Он преобразует строку в формат си-строки.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.
___________________________________ ___________________________________ _______
[=Правила форума=] _____ [Поиск] _____ [Литература по С++] ____ [Литература. Паскаль]
New Delphi Coder
Форумчанин Подтвердите свой е-майл
Регистрация: 20.07.2008
Сообщений: 874
Sazary, спасибо разобрался, а как преобразовать из int в стр?
Страх это слабость и потому, кто испугался уже побежден.
Регистрация: 19.12.2008
Сообщений: 5,788
| а как преобразовать из int в стр? |
А вот это вопрос посложнее )
В си-строку-то преобразовать можно с помощью обратной функции itoa:
itoa (int, char*, int);
1-й аргумент — число, второй — буфер (строка), 3-й — система счисления.
Также можно использовать sprintf.
Для string‘ов знаю такой способ:
#include #include #include #include using namespace std; template std::string toString(T val) < std::ostringstream oss; osstemplate T fromString(const std::string& s) < std::istringstream iss(s); T res; iss >> res; return res; > int main() < string str; int iVal=123; float fVal=123.45; str = toString(iVal); str = toString(fVal); iVal = fromString(str); fVal = fromString(str); cout
ps Стянуто с инета )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.
___________________________________ ___________________________________ _______
[=Правила форума=] _____ [Поиск] _____ [Литература по С++] ____ [Литература. Паскаль]