String. To String Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует значение данного экземпляра в String.
Перегрузки
Возвращает этот экземпляр String; реальное преобразование не осуществляется.
Возвращает этот экземпляр String; реальное преобразование не осуществляется.
ToString(IFormatProvider)
Возвращает этот экземпляр String; реальное преобразование не осуществляется.
Параметры
(Зарезервирован.) Объект, предоставляющий сведения о форматировании, связанные с определенным языком и региональными параметрами.
Возвращаемое значение
Реализации
Комментарии
provider зарезервирован и в настоящее время не участвует в этой операции.
Так как этот метод просто возвращает текущую строку без изменений, ее не нужно вызывать напрямую.
Применяется к
ToString()
Возвращает этот экземпляр String; реальное преобразование не осуществляется.
Возвращаемое значение
Примеры
В следующем примере демонстрируется ToString метод. Обратите внимание, что в примере метод не вызывается явным ToString образом. Вместо этого метод вызывается неявно функцией составного форматирования .
Комментарии
Так как этот метод просто возвращает текущую строку без изменений, ее не нужно вызывать напрямую. Обычно он вызывается неявно в операции составного форматирования, как показано в примере.
Как преобразовать строки в стиле C в std :: string и наоборот?
Что такое строки в стиле C ?
Эти строки являются массивом символов, оканчивающихся символом NULL. Строки стиля C могут быть объявлены следующими способами:
Декларация и инициализация
/ * Для демонстрации строк в стиле C * /
#include<iostream>
using namespace std;
/ * Нулевой символ должен быть добавлен явно * /
/ * Компилятор неявно добавляет нулевой символ * /
char str2[] = «HELLO-2» ;
/ * Компилятор неявно добавляет символ Null.
Обратите внимание, что строковые литералы обычно хранятся
только для чтения * /
const char *str3 = «HELLO-3» ;
Строки стиля C работают с очень полезными функциями, такими как strcpy () , strlen () , strpbrk () , strcat () , strstr () и многими другими! (Все эти функции являются функциями- членами заголовка ' cstring ').
Что такое std :: string?
Стандартная библиотека C ++ содержит функции и классы. Строка является одним из его классов. Здесь мы имеем дело с объектом класса string. Эта std :: string заботится о себе и управляет собственной памятью.
Декларация и инициализация
/ * Для демонстрации std :: string * /
#include<iostream>
#include<string>
using namespace std;
/ * s становится объектом строки класса. * /
/ * Инициализация со значением. * /
Преобразование C-String в std :: string.
Но зачем нам это преобразование? Из строки C в std :: string? Потому что
- Std :: string управляет своим собственным пространством. Поэтому программисту не нужно беспокоиться о памяти, в отличие от строк C (так как они представляют собой массив символов)
- Они просты в эксплуатации. Оператор «+» для конкатенации, «=» для присваивания можно сравнить с помощью обычных операторов.
- string :: find () и многие другие функции могут быть реализованы в std :: string, а не в C-Strings, так что это становится удобным.
- Итераторы могут использоваться в std :: string, а не в C-строках.
И многое другое! Вот код для этого: —
/ * Чтобы продемонстрировать строку в стиле C для std :: string * /
#include<bits/stdc++.h>
using namespace std;
const char *a = «Testing» ;
cout << «This is a C-String : » << a << endl;
/ * Так назначается std :: string s
/ * Теперь s — это std :: string, а a — это C-String * /
cout << «This is a std::string : » << s << endl;
Вышеупомянутое преобразование также работает для массива символов.
Преобразование std :: string в строку стиля C
Зачем нам это преобразование? Из std :: string в строку C?
- Это потому, что в заголовке есть несколько мощных функций, которые значительно облегчают нашу работу.
- atoi () , itoa () и многие другие функции работают только со строками Си.
Вы можете думать и о других причинах!
Вот код для конвертации: —
/ * Для демонстрации std :: string в строку стиля C * /
#include<iostream>
#include<string> /* This header contains string class */
using namespace std;
/ * std :: string initialized * /
string s = «Testing» ;
cout << «This is a std::string : » << s << endl;
/ * Адрес первого символа std :: string is
сохранено в символьный указатель * /
/ * Теперь у 'a' есть адрес начального символа
std :: string также имеет функцию c_str (), которую можно использовать для получения массива символов с нулевым символом в конце .
/ * Для демонстрации std :: string в C стиле, используя
using namespace std;
/ * std :: string initialized * /
string s = «Testing» ;
cout << «This is a std::string : » << s << endl;
// c_str возвращает массив символов с нулевым символом в конце
const char *a = s.c_str();
/ * Теперь у 'a' есть адрес начального символа
И строки C, и std :: strings имеют свои преимущества. Нужно знать конверсию между ними, решать проблемы легко и эффективно.
Статьи по Теме:
C ++ строковый класс и его приложения | Комплект 1
C ++ строковый класс и его приложения | Набор 2
Эта статья предоставлена Nishant . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
How to convert C style strings to std::string and vice versa?
What are C style strings?
These strings are array of characters terminating with a NULL character. C style strings can be declared in following ways:
Declaration and initialization
C style strings are operated with very useful functions like strcpy(), strlen(), strpbrk(), strcat(), strstr() and many more!(All these functions are member functions of ‘cstring‘ header ).
What is a std::string?
C++ standard library contains functions and classes. String is one of its classes. Here we deal with an object of string class. This std::string takes care of itself and manages its own memory.
Declaration and initialization
Converting C-String to a std::string.
But why do we need this transformation? From a C string to a std::string? It is because
- Std::string manages its own space. So programmer don’t need to worry about memory , unlike C strings (Since they are array of characters)
- They are easy to operate. ‘+’ operator for concatenation, ‘=’ for assignment, can be compared using regular operators.
- string::find() and many other functions can be implemented on std::string and not on C-Strings so this becomes handy.
- Iterators can be used in std::string and not in C-strings.
And many more! Here is the code for it:-
The above conversion also works for character array.
Converting a std::string to a C style string
Why do we need this transformation? From std::string to a C string?
- It is because there are several powerful functions in header that makes our work very much easier.
- atoi() , itoa() , and many more functions work with C strings only.
You can think of other reasons too!
Here is the code for conversion:-
std::string also has a function c_str() that can be used to get a null terminated character array.
Both C strings and std::strings have their own advantages. One should know conversion between them, to solve problems easily and effectively.
Related articles:
C++ string class and its applications | Set 1
C++ string class and its applications | Set 2
This article is contributed by Nishant. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.