Шаг 218.
Microsoft Visual C++ 2010. Язык С/С++. Преобразование между регулируемыми и нерегулируемыми... . Пример 7. Доступ к символам в классе System::String

    На этом шаге мы приведем программу, реализующую указанное преобразование.

    Это частный случай примера 3. Здесь интересна работа с native-указателем, показывающим на native-строку (строку "обычных" символов) в управляемой куче. Кавычки поставлены для того, чтобы указать на необычность ситуации: каждый символ занимает (в отличие от обычной строки символов типа char) два, а не один байт, т. к. находится в управляемой куче. Поэтому и признак конца - это не обычный символ '\0', a L'\0' ("длинный" нуль).

    Текст программы приведен ниже, а результат - на рисунке 1.

// 218_1.cpp: главный файл проекта.

#include "stdafx.h"
#include <vcclr.h>

using namespace System;

void main()
{
	String^ mystring = "abcdefg";
	// Описание метода показано в примере 3
	interior_ptr<const Char> ppchar = PtrToStringChars( mystring );

	// цикл по строке символов: от нулевого (*ppchar) 
	// до признака конца строки (L'\0')
	for ( ; *ppchar != L'\0'; ++ppchar )
		Console::Write(*ppchar);
	Console::Write(L'\n'); //переход на новую, после выданной, строку 
	Console::ReadLine();
}
Архив проекта можно взять здесь.


Рис.1. Доступ к символам System::String-строки

    На следующем шаге мы рассмотрим преобразование char* в массив System::Byte.




Предыдущий шаг Содержание Следующий шаг