2009-10-30 2 views
1

я на самом деле пытаюсь преобразовать код Csharp -с ... ниже есть C# код ..как преобразовать CString в Bytes

CString data = "world is beautiful";  
Byte[] quote = ASCIIEncoding.UTF8.GetBytes(data); 

в коде выше ... он преобразует строку в байтах ..similarily это способ, которым я могу преобразовать его с помощью C .. Может ли любое тело сказать, что такое wud be quivalent code in C? Пожалуйста, помогите мне, ребята

+1

.Net не имеет класса 'CString'; вы, вероятно, имеете в виду 'string'. – SLaks

ответ

3

Ну CString - класс C++, поэтому сделать это на C маловероятно.

Но если вы хотите, чтобы получить его в качестве стандартной многобайтовой закодированной строки, то вы можете сделать следующее

CString data = "world is beautiful"; 
CStringA mbStr = data; 
char* bytes  = mbStr.GetString(); 
+0

tanx для u ответ .. , но все же его чтение его как строки, но не как байты. Имеет смысл – kiddo

+0

массив символов - это массив байтов. Просто потому, что вы смотрите в отладчике, и он интерпретирует его как набор символов, ни здесь, ни там. У вас есть массив байтов. – Goz

0

В C тип символа определяется как один байт в памяти. Следовательно, сохранение вашей строки в качестве символа char * будет эквивалентно сохранению массива байтов в C#.

+0

Плакат спрашивает, как кодировать строку Unicode как UTF-8. –

+0

@ Джонатан: Это резкое понижение. Исходный вопрос не упоминал UTF8, он просто использовался в качестве примера. – PaulG