c перевод string в массив char

Определение

Копирует знаки данного экземпляра в массив знаков Юникода. Copies the characters in this instance to a Unicode character array.

Перегрузки

Копирует знаки из указанной подстроки данного экземпляра в массив знаков Юникода. Copies the characters in a specified substring in this instance to a Unicode character array.

Копирует знаки данного экземпляра в массив знаков Юникода. Copies the characters in this instance to a Unicode character array.

ToCharArray(Int32, Int32)

Копирует знаки из указанной подстроки данного экземпляра в массив знаков Юникода. Copies the characters in a specified substring in this instance to a Unicode character array.

Параметры

Начальная позиция подстроки в данном экземпляре. The starting position of a substring in this instance.

Длина подстроки в данном экземпляре. The length of the substring in this instance.

Возвраты

Массив знаков Юникода, элементами которого являются length знаков данного экземпляра начиная с позиции startIndex . A Unicode character array whose elements are the length number of characters in this instance starting from character position startIndex .

Исключения

Значение параметра startIndex или length меньше нуля. startIndex or length is less than zero.

– или – -or- startIndex + length больше длины этого экземпляра. startIndex plus length is greater than the length of this instance.

Примеры

В следующем примере подстрока в строке преобразуется в массив символов, затем перечисляется и отображаются элементы массива. The following example converts a substring within a string to an array of characters, then enumerates and displays the elements of the array.

Комментарии

Этот метод копирует символы из части строки в массив символов. This method copies the characters in a portion of a string to a character array. Чтобы создать строку из диапазона символов в массиве символов, вызовите конструктор String(Char[], Int32, Int32). To create a string from a range of characters in a character array, call the String(Char[], Int32, Int32) constructor.

Читайте также:  699 долларов в рублях

Параметр startIndex отсчитывается от нуля. The startIndex parameter is zero-based. То есть индекс первого символа в экземпляре строки равен нулю. That is, the index of the first character in the string instance is zero.

Если length равно нулю, возвращаемый массив пуст и имеет нулевую длину. If length is zero, the returned array is empty and has a zero length. Если этот экземпляр имеет null или пустую строку (“”), возвращаемый массив пуст и имеет нулевую длину. If this instance is null or an empty string (“”), the returned array is empty and has a zero length.

Чтобы создать массив байтов, содержащий закодированные символы в части строки, создайте экземпляр соответствующего объекта Encoding и вызовите его метод GetBytes(String, Int32, Int32, Byte[], Int32). To create a byte array that contains the encoded characters in a portion of a string, instantiate the appropriate Encoding object and call its GetBytes(String, Int32, Int32, Byte[], Int32) method. Ниже перечислены некоторые из стандартных кодировок, доступных в .NET. Some of the standard encodings available in .NET include:

кодировка Encoding Object Object
ASCII ASCII ASCIIEncoding
UTF-7 UTF-7 UTF7Encoding
UTF-8 UTF-8 UTF8Encoding
UTF-16 UTF-16 UnicodeEncoding
UTF-32 UTF-32 UTF32Encoding

Дополнительно

ToCharArray()

Копирует знаки данного экземпляра в массив знаков Юникода. Copies the characters in this instance to a Unicode character array.

Возвраты

Массив знаков Юникода, элементами которого являются отдельные знаки из данного экземпляра. A Unicode character array whose elements are the individual characters of this instance. Если этот экземпляр является пустой строкой, то возвращаемый массив пуст и его длина равна нулю. If this instance is an empty string, the returned array is empty and has a zero length.

Примеры

В следующем примере вызывается метод ToCharArray для извлечения символов из строки в массив символов. The following example calls the ToCharArray method to extract the characters in a string to a character array. Затем она отображает исходную строку и элементы в массиве. It then displays the original string and the elements in the array.

В следующем примере определяется строка, содержащая символы, которые служат разделителями в строке с разделителями. The following example defines a string containing the characters that serve as delimiters in a delimited string. Затем он вызывает метод ToCharArray, чтобы создать массив символов, который можно передать в метод Split(Char[]), чтобы разделить строку с разделителями на отдельные подстроки. It then calls the ToCharArray method to create a character array that can be passed to the Split(Char[]) method to separate the delimited string into its individual substrings.

Комментарии

Этот метод копирует каждый символ (то есть каждый объект Char) в строке в массив символов. This method copies each character (that is, each Char object) in a string to a character array. Первый скопированный символ находится в нулевом индексе возвращенного массива символов; последний скопированный символ находится в индексе Array.Length-1. The first character copied is at index zero of the returned character array; the last character copied is at index Array.Length – 1.

Чтобы создать строку из символов в массиве символов, вызовите конструктор String(Char[]). To create a string from the characters in a character array, call the String(Char[]) constructor.

Я хотел бы, чтобы преобразовать string to char массив, а не char* . Я знаю, как преобразовать строку char* (через malloc или то, как я разместил его в своем коде) – но это не то, что я хочу. Я просто хочу конвертировать string to char[size] массив. Возможно ли это?

10 ответов:

самый простой способ, который я могу придумать, это:

для безопасности, вы предпочтете:

или может быть таким образом:

хорошо, я в шоке, что никто не дал хороший ответ, теперь моя очередь. Есть два случая;

A константы char массив достаточно хорош для вас так что вы идете с,

или нужно изменить массив символов so constant не в порядке, тогда просто идите с этим

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

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

Прямо сейчас я создаю строку для отправки в качестве запроса к функции отправки winsock, которая требует отправки char []. Мне нужно преобразовать мой std :: string в массив char (char []).

В настоящее время это запрос, который работает:

Но мне нужно изменить строку запроса на ту же структуру данных.

Я ценю любую помощь!

редактировать:

Я могу преобразовать строку в символ *, но как я могу использовать это, чтобы получить
массив символов? Я надеюсь, что я не делаю это более запутанным. Вот
две попытки, которые приводят к тому, что char star не совместимы с send
запрос, когда я бегу:

Решение

Если у вас есть какой-то устаревший API в стиле C с такой подписью, где он ожидает строку в стиле C с нулевым символом в конце:

тогда вы можете сделать что-то вроде:

Если вам действительно нужен массив или неконстантная версия данных, то API это:

Тогда вы можете сделать что-то вроде этого:

Другие решения

Вы действительно нуждаетесь char[] или будет char const* делать?

Если последнее, c_str () будет делать то, что вы хотите.

Если первое, то вам нужно скопировать строку в то, что делает то, что вы хотите:

Скорее всего, вам нужна только версия c_str. Если вам нужна эта вторая версия, тогда вы читаете и, возможно, надеетесь предоставить максимальный размер баффа.

Оцените статью
Все о Windows 10
Добавить комментарий

Adblock
detector