2009-10-30 9 views
1

je suis en fait tryin pour convertir un code csharp à c ... ci-dessous est le code C# ..comment convertir CString Bytes

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

dans le code ci-dessus ... il convertit la chaîne en octets ..similarily est-il un moyen que je peux le convertir en utilisant C .. Est-ce que n'importe quel corps peut dire quel sera le code équivalent en C? S'il vous plaît aidez-moi les gars

+1

.Net ne dispose pas d'une classe 'CString'; vous voulez probablement dire 'string'. – SLaks

Répondre

3

Bien CString est une classe C++ donc le faire en C est un peu improbable.

Mais si vous souhaitez obtenir une chaîne standard codé multi-octets, vous pouvez effectuer les opérations suivantes

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

tanx pour u .. réponse mais sa lecture comme une chaîne mais pas comme octets .. t-il logique – kiddo

+0

un tableau de caractères est un tableau d'octets. Juste parce que vous regardez dans un débogueur et l'interprète comme un ensemble de caractères n'est ni ici ni là. Vous avez un tableau d'octets. – Goz

0

En C le type char est défini comme un octet en mémoire. Par conséquent, stocker votre chaîne en tant que char * équivaudrait à stocker un tableau d'octets en C#.

+0

L'affiche demande comment encoder une chaîne Unicode en UTF-8. –

+0

@Jonathan: C'est un downvote sévère. La question originale n'a pas mentionné UTF8, elle a juste été utilisée comme exemple. – PaulG