2015-09-23 3 views
3

Почему у них есть System::String и std::string в C++?Почему у них есть системная строка и стандартная строка

Я ничего не мог с этим поделать, кроме некоторых тем, касающихся преобразования одного в другое.

Я заметил это, когда хочу поместить информацию textbox в переменную std::string. поэтому я должен был сделать нечетное преобразование, чтобы получить это.

Почему у них эти две разные строки, когда они на самом деле делают то же самое для кодирования? (удерживая строковое значение).

+6

'System :: String' не является стандартом C++. Это специальное расширение C++ - CLI. –

+0

В C++ нет 'System :: string'. Возможно, вы думаете о C# или управляемом C++ от Microsoft. –

+0

Я использую его на Visual Studio 2015, так что да, это, вероятно, управление C++ от Microsoft. Я использую графический интерфейс, поэтому ему нужно общаться с текстовым полем, поэтому, возможно, в нем есть 'System :: String' (' std :: string', не работает с 'textbox-> Text') – Bart

ответ

3

std::string - шаблон шаблона из стандартной библиотеки C++, в которой хранятся и обрабатываются строки. Данные в std::string в основном представляют собой последовательность байтов, то есть она не имеет en encoding. std::string поддерживает самый базовый набор операций, который вы ожидаете от строки, а именно дает методы поиска и замены подстроки.

System::string - это класс из Microsoft .Net framework. Он представляет текст как последовательность символов Юникода и имеет некоторые более специализированные методы, такие как StartsWith, EndsWith, Split, Trim, и так далее.