Пример 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.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий