Как преобразовать стринг в инт c

Вы можете преобразовывать строку в число с помощью вызова метода Parse или TryParse , который можно найти в различных числовых типах ( int , long , double и т. д.), или используя методы в классе System.Convert. You can convert a string to a number by calling the Parse or TryParse method found on the various numeric types ( int , long , double , etc.), or by using methods in the System.Convert class.

Если имеется строка, то немного эффективнее и проще вызвать метод TryParse (например, int.TryParse("11", out number) ) или метод Parse (например, var number = int.Parse("11") ). If you have a string, it is slightly more efficient and straightforward to call a TryParse method (for example, int.TryParse("11", out number) ) or Parse method (for example, var number = int.Parse("11") ). Использование метода Convert более удобно для общих объектов, реализующих IConvertible. Using a Convert method is more useful for general objects that implement IConvertible.

Вы можете использовать методы Parse или TryParse в числовом типе, который предположительно содержит строка, таком как тип System.Int32. You can use Parse or TryParse methods on the numeric type you expect the string contains, such as the System.Int32 type. Метод Convert.ToInt32 использует Parse внутри себя. The Convert.ToInt32 method uses Parse internally. Метод Parse возвращает преобразованное число; метод TryParse возвращает значение Boolean, которое указывает, успешно ли выполнено преобразование, и возвращает преобразованное число в параметр out . The Parse method returns the converted number; the TryParse method returns a Boolean value that indicates whether the conversion succeeded, and returns the converted number in an out parameter. Если строка имеет недопустимый формат, Parse создает исключение, а TryParse возвращает значение false. If the string is not in a valid format, Parse throws an exception, whereas TryParse returns false. В случае сбоя операции синтаксического анализа при вызове метода Parse вы всегда должны использовать обработку исключений, чтобы перехватить FormatException. When calling a Parse method, you should always use exception handling to catch a FormatException in the event that the parse operation fails.

Читайте также:  Почему притормаживает видео на ноутбуке

Вызов методов Parse и TryParse Calling the Parse and TryParse methods

Методы Parse и TryParse игнорируют пробелы в начале и в конце строки, но все остальные символы должны быть символами, которые образуют соответствующий числовой тип ( int , long , ulong , float , decimal и т. д.). The Parse and TryParse methods ignore white space at the beginning and at the end of the string, but all other characters must be characters that form the appropriate numeric type ( int , long , ulong , float , decimal , etc.). Любые пробелы в строке, образующие число, приводят к ошибке. Any white space within the string that forms the number causes an error. Например, можно использовать decimal.TryParse для анализа "10", "10.3" или " 10 ", но этот метод нельзя использовать для анализа 10 из "10X", "1 0" (обратите внимание на внедренный пробел), "10 .3" (обратите внимание на внедренный пробел), "10e1" (здесь работает float.TryParse ) и т. д. For example, you can use decimal.TryParse to parse "10", "10.3", or " 10 ", but you cannot use this method to parse 10 from "10X", "1 0" (note the embedded space), "10 .3" (note the embedded space), "10e1" ( float.TryParse works here), and so on. Кроме того, строку со значением null или String.Empty невозможно успешно проанализировать. In addition, a string whose value is null or String.Empty fails to parse successfully. Вы можете проверить наличие NULL или пустой строки, прежде чем пытаться ее проанализировать, вызвав метод String.IsNullOrEmpty. You can check for a null or empty string before attempting to parse it by calling the String.IsNullOrEmpty method.

В указанном ниже примере демонстрируются успешные и неуспешные вызовы методов Parse и TryParse . The following example demonstrates both successful and unsuccessful calls to Parse and TryParse .

В следующем примере показан один из подходов к анализу строки, которая, как ожидается, будет включать начальные числовые символы (включая шестнадцатеричные символы) и конечные нечисловые символы. The following example illustrates one a approach to parsing a string that is expected to include leading numeric characters (including hexadecimal characters) and trailing non-numeric characters. Он назначает допустимые символы в начале новой строки перед вызовом метода TryParse. It assigns valid characters from the beginning of a string to a new string before calling the TryParse method. Поскольку анализируемые строки содержат небольшое количество символов, в примере вызывается метод String.Concat для назначения допустимых символов новой строке. Because the strings to be parsed contain a small number of characters, the example calls the String.Concat method to assign valid characters to a new string. Для большей строки можете использовать класс StringBuilder. For a larger string, the StringBuilder class can be used instead.

Читайте также:  Посудомойка кайзер ошибка е4

Вызов методов Convert Calling the Convert methods

В следующей таблице перечислены некоторые методы класса Convert, которые можно использовать для преобразования строки в число. The following table lists some of the methods from the Convert class that you can use to convert a string to a number.

Главное меню

Войти на сайт

Мы с социальных сетях

Помочь проекту

Последние статьи

c# преобразование int в string

Преобразовать тип int в string в c# можно при помощи ToString()

string s1 = i.ToString();

string s2 = s1+i.ToString();

//// результат s1 = 5; s2 = 55

ToString – основной метод форматирования в dotNet Framework, он конвертирует объект в строку. По умолчанию ToString возвращает полное имя объекта.

ToString is the major formatting method in the .NET Framework." xml:space="preserve" style="font-family: ‘Segoe UI’, Verdana, Arial; font-size: 13px; line-height: normal; text-align: left;">

какой самый простой способ конвертировать из int в эквиваленте string В C++. Я знаю два метода. Есть ли более простой способ?

25 ответов

в C++11 вводит std::stoi (и варианты для каждого числового типа) и std::to_string , аналоги C atoi и itoa но выражается в термине std::string .

поэтому это самый короткий путь, который я могу придумать. Вы даже можете опустить имя типа, используя auto ключевые слова:

Примечание:[строка.преобразования] (21.5 на n3242)

взяв в руки дискуссии с @В. oddou пару лет спустя, в C++17, наконец, доставлены способ сделать изначально макрос-тип-агностик Решение (ниже) без проходя через макро-уродство.

оригинальный ответ:

так как " преобразование . to string " является повторяющейся проблемой, я всегда определяю SSTR () макрос в Центральном заголовке моего C++ источники:

использование так же просто, как могло бы быть:

выше C++98 совместим (если вы не можете использовать C++11 std::to_string ), и не нуждается в каких-либо сторонних включает (если вы не можете использовать Boost lexical_cast<> ); оба эти другие решения имеют лучшую производительность.

обычно я использую следующий метод:

вероятно, самый распространенный простой способ оборачивает по существу ваш второй выбор в шаблон с именем lexical_cast , одно в Boost, так что ваш код выглядит так:

одна из тонкостей этого заключается в том, что он также поддерживает другие слепки (например, в противоположном направлении работает так же хорошо).

также обратите внимание, что хотя Boost lexical_cast начинался как просто запись в stringstream, а затем извлечение обратно из потока, теперь у него есть пара из дополнений. Прежде всего, были добавлены специализации для нескольких типов, поэтому для многих распространенных типов это значительно быстрее, чем использование stringstream. Во-вторых, теперь он проверяет результат, поэтому (например), если вы конвертируете из строки в int , он может вызвать исключение, если строка содержит что-то, что не может быть преобразовано в int (например, 1234 получится, но 123abc бросил бы).

начиная с C++11, есть std::to_string функция перегружена для целочисленные типы, поэтому вы можете использовать код типа:

стандарт определяет их как эквивалентные выполнению преобразования с помощью sprintf (используя спецификатор преобразования, который соответствует указанному типу объекта, например, %d на int ), в буфер достаточного размера, а затем создание std::string содержимое этого буфера.

Если у вас установлен Boost (который вы должны):

Поделиться с друзьями