Re: convert (single) char to string

Tech-Archive recommends: Fix windows errors by optimizing your registry



Zytan wrote:
I am surprised that a single character string is not auto-created from
a single char. It is hard to find information on converting a char
into a string, since most people ask how to convert char[] to string.
I have a function that accepts a string, and I wish to access this
function for each character in the string, individually. The only
solution I have found is:

char c = 'A';
string s = System.Text.Encoding.ASCII.GetString(c);

But, using the Encoding functions??? This seems so wrong, since it
doesn't have to convert anything. I could get demons from this, since
it could change the underlying 16-bit value stored within the char.
ASCII isn't good enough. Default uses the default code page, whatever
that may be. What can I do to ensure 100% that it stays the same?

Debug.Assert(s[0] == c);

Zytan


Using encoding to convert a char to a string is not correct. Then you will be converting the char into a byte and treating that byte as if it was encoded data that you can decode into a string.

There are several ways of turning a char into a string:

char c = 'A';

string s1 = new String(c, 1);
string s2 = new String(new char[] { c });
string s3 = c.ToString();


--
Göran Andersson
_____
http://www.guffa.com
.



Relevant Pages

  • Re: Pre-information on Unicode in Delphi 2008
    ... Well IMO this is one case where Delphi isn't doing strong typing, there should be a warning there and a requirement for an explicit cast. ... Converting from Ansi to Wide while assuming the Ansi is using the system_locale is just an assumption, and in the Delphi IDE itself, that can results in string corruption when editing DFMs, and before you ask, yes there are QCs on the subject:) ... AnsiString have no particular encoding at all, assuming *any* encoding for automagic conversion is going to result in hard-to-track cases of data ...
    (borland.public.delphi.non-technical)
  • Re: How to add thousand separators
    ... First, this code is obsolete as written, because char is a dead data type and should not ... Note that both of these should be stored as string resources since they might need to be ... 18 digits for any reason. ... you have made a VERY SERIOUS DESIGN ERROR. ...
    (microsoft.public.vc.mfc)
  • Re: Returning a character buffer from a DLL
    ... I need to return a string buffer from the DLL in a RunQuery function. ... I find it odd that you are using the obsolete 'char *' data type here. ... want to use a string pointer of any type here! ...
    (microsoft.public.vc.mfc)
  • Re: what is the best way of passing floats into a string
    ... I do not null-terminate as snprintf takes care of this (according to ... But the easiest way to determine the size needed to format a number, ... int length_of_representation(double n,const char* format){ ... I get a nice result of -10.000000 in my char * string. ...
    (comp.unix.programmer)
  • Re: weird problem
    ... I already told you that the comparison between an integer and a float ... to strcmpwhich expects a pointer to a string. ... And now a question about something else: why do you use floating ... int,float, char, etc. ...
    (comp.lang.c)