Witam.
Mam problem ze skonwertowaniem string do char. Ale nie chodzi mi o pojedyncze litery, bo to jest proste, tylko o całe wyrazy, zdania, czy tekst z cyframi. Np. " Oto jest zdanie 1 do konwersji na char" .
Nie można zamienić całego zdania na char .. - przeczytaj o typie char !
Czy miałeś na myśli konwersje string -> tablica char?
no chyba wlasnie mu chodzi o niezarzadzane char* ;)
a char* to po prostu tablica bajtow. Uzyj konwersji Encoding.ASCII.GetBytes(twojString).
Chyba ze to faktycznie <ort>prostrzy </ort>przypadek i chcesz char[]. Wtedy sprawa wyglada banalnie.... bo twojString.ToCharArray()... ale w sumie piszesz, ze tego nie chcesz, wiec zostawiam Cie z pierwszym przypadkiem ;)
Zwroc uwage na to, ze char w kodzie niezarzadzanym ma 1 bajt, a w zarzadzanym dwa, wiec char, charowi nie rowny i musisz uzywac byte ;)
string zdanie = "abecede";
char znak_pierwszy = zdanie[0];
char znak_drugi = zdanie[1];
... ??
Witam. Dzięki za odpowiedź, przydały się podpowiedzi. Wykonałem coś takiego:
//KONWERSJA
string x="001DE0A89329";
char[] www= new char[x.Length];
www = x.ToCharArray();
//---------------------- OK
byte[] abc = new byte[x.Length];
abc=Encoding.ASCII.GetBytes(x);
Potrzebowałem sposobu na zamienienie stringa na char a potem na bajty(potrzebne do stworzenia pakietu TCP/IP) , tak więc dzięki Wasiu :)
char[] www= new char[x.Length];
www = x.ToCharArray();
mozesz zamienic na
char[] www = x.ToCharArray();
Bo nie musisz tworzyc tablicy, skoro i tak podmieniasz referencje na ta zwrocona przez metode ToCharArray().
uzywajac Encoding.ASCII konwertujesz string'a na ASCII (stracisz polskie znaczki, itp). Domyslnie w .net'cie sa one w Unicodzie. Jesli po drugiej stronie jest aplikacja obslugujaca Unicode'a uzyj raczej Encoding.Unicode.GetBytes()