The conversion from ASCII to Unicode is completed today.
Sort out the resources used.
The common problems are conversion and display. The first problem is the conversion problem.
# Include <string>// When using the string class of the C ++ standard library
Using namespace STD;// Same as above
# Include <sstream>
# Include <iostream>
# Include <stdlib. h>// It is best to directly convert the string and INT types to include,
// Because it is easier to write a conversion function by yourself, the function definition is as follows:
String getstring (const int N)
{
STD: stringstream newstr;
Newstr <N;
Return newstr. STR ();
}
String to cstring
Cstring. Format ("% s", String. c_str ());
Convert Char to cstring
Cstring. Format ("% s", char *);
Char to string
String S (char *);
String to char *
Char * P = string. c_str ();
Cstring to string
String S (cstring. getbuffer ());
1, string-> cstring
Cstring. Format ("% s", String. c_str ());
C_str () is indeed better than data.
2, char-> string
String S (char *);
Only Initialization is allowed. It is best to use assign () instead of initialization ().
3, cstring-> string
String S (cstring. getbuffer ());
Releasebuffer () is required after getbuffer (). Otherwise, no space occupied by the buffer is released.
As mentioned in C ++ standard function library
There are three functions that can convert the content of a string to a character array and a C-string
1. Data (), returns a string array without "/0"
2, c_str (), returns a string array with "/0"
3, copy ()
---------------------
Conversion between cstring, Int, char *, and char [100 --
Conversion between cstring, Int, char *, and char [100 --
Cstring mutual int Conversion
Converts a character to an integer. You can use atoi, _ atoi64, or atol.
To convert a number to a cstring variable, you can use the format function of cstring. For example
Cstring S;
Int I = 64;
S. Format ("% d", I)
The format function is very powerful and worth your research.
Void cstrdlg: onbutton1 ()
{
// Todo: add your control notification handler code here
Cstring
Ss = "1212.12 ″;
Int temp = atoi (SS );
Cstring AA;
AA. Format ("% d", temp );
Afxmessagebox ("VaR is" + AA );
}
Sart. Format ("% s", Buf );
Convert cstring to char *
/// Char * To cstring
Cstring strtest;
Char * charpoint;
Charpoint = "give string a value ";
Strtest = charpoint;
/// Cstring to char *
Charpoint = strtest. getbuffer (strtest. getlength ());
There is no string in Standard C, char * = char [] = string
You can use the cstring. Format ("% s", char *) method to convert char * To cstring. To convert cstring to char *, use the operator (lpcstr) cstring.
Cstring conversion char [100]
Char A [100];
Cstring STR ("aaaaaa ");
Strncpy (A, (lpctstr) STR, sizeof ());
// Configure //-----------------------------------------------------------------------------------------
Then the problem is displayed:
Cout <(lpctstr) Name
Wcount is also used in some cases,
Focus on char * To cstring
(1) convert char * To cstring
If char * is converted to cstring, you can use cstring: format in addition to direct value assignment. For example:
Char charray [] = "char test ";
Tchar * P = _ T ("char test"); (or lptstr P = _ T ("char test ");)
Cstring thestring = charray;
Thestring. Format (_ T ("% s"), charray );
Thestring = P;
(2) convert cstring to char *
If the cstring type is converted to the char * (lpstr) type, the following three methods are often used:
Method 1: use forced conversion.For example:
Cstring thestring (_ T ("char test "));
Lptstr lpsz = (lptstr) (lpctstr) thestring;
Method 2: Use strcpy. For example:
Cstring thestring (_ T ("char test "));
Lptstr lpsz = new tchar [thestring. getlength () + 1];
_ Tcscpy (lpsz, thestring );
It should be noted that the second parameter of strcpy (or _ tcscpy of the value to be moved) is const wchar_t * (UNICODE) or const char * (ANSI ), the system compiler will automatically convert it.
Method 3: Use cstring: getbuffer.
If you need to modify the content in cstring, there is a special method that can be used, that is, getbuffer, which is used to return a writable buffer pointer. If you only want to modify characters or truncate strings, for example:
Cstring S (_ T ("char test "));
Lptstr P = S. getbuffer ();
Lptstr dot = strchr (p ,''.'');
// Add the code using P here
If (P! = NULL)
* P = _ T ('');
S. releasebuffer (); // release immediately after use, so that other cstring member functions can be used.
In the range between getbuffer and releasebuffer, you must not use any method of the buffer cstring object you want to operate on. BecauseReleasebufferThe integrity of the cstring object is not guaranteed before it is called.