Cstring, lpctstr, String, char [], char * Conversion (2)

Source: Internet
Author: User

Cstring, Int, String, char * Conversion
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 *);
You can only initialize it. It is best to use assign () unless it is initialized ().
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 ()

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 ());

Cstring type conversion to int
Cstring type conversion to int
Converts a character to an integer. You can use atoi, _ atoi64, or atol.
// Cstring AAA = "16 ";
// Int int_chage = atoi (lpcstr) AAA );

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.
If the char array is used, you can also use the sprintf function.
/Cstring Ss = "1212.12 ";
// Int temp = atoi (SS );
// Cstring AA;
// AA. Format ("% d", temp );

Numbers-> strings include cstring: format, formatv, sprintf, and ITOA without afx.

3 char * to int
# Include <stdlib. h>

Int atoi (const char * nptr );
Long atol (const char * nptr );
Long long Atoll (const char * nptr );
Long long atoq (const char * nptr );

Cstring, Int, String, char * Conversion
String AA ("AAA ");
Char * c = AA. c_str ();

Cannot convert from 'const char * 'to 'Char *'
Const char * c = AA. c_str ();

Cstring, Int, String, char * Conversion
String. c_str () can only be converted to const char *,
To convert it to char *, write as follows:
String mngname;
Char T [200]; memset (T, 0,200); strcpy (T, mngname. c_str ());

Convert BSTR to char *

Method 1: Use convertbstrtostring. For example:

# Include # pragma comment (Lib, "comsupp. lib ")
Int _ tmain (INT argc, _ tchar * argv [])
{
BSTR bstrtext =: sysallocstring (L "test ");
Char * lpsztext2 = _ com_util: convertbstrtostring (bstrtext );
Sysfreestring (bstrtext); // release after use
Delete [] lpsztext2;
Return 0;
} Method 2: Use the _ bstr_t value assignment operator to overload it. For example:

_ Bstr_t B = bstrtext;
Char * lpsztext2 = B;

Char * To BSTR

Method 1: Use API functions such as sysallocstring. For example:

BSTR bstrtext =: sysallocstring (L "test ");
BSTR bstrtext =: sysallocstringlen (L "test", 4 );
BSTR bstrtext =: sysallocstringbytelen ("test", 4); Method 2: Use colevariant or _ variant_t. For example:

// Colevariant strvar ("this is a test ");
_ Variant_t strvar ("this is a test ");
BSTR bstrtext = strvar. bstrval; Method 3: Use _ bstr_t, which is the simplest method. For example:

BSTR bstrtext = _ bstr_t ("this is a test"); Method 4: Use ccombstr. For example:

BSTR bstrtext = ccombstr ("this is a test"); or

Ccombstr BSTR ("this is a test ");
BSTR bstrtext = BSTR. m_str; Method 5: Use convertstringtobstr. For example:

Char * lpsztext = "test ";
BSTR bstrtext = _ com_util: convertstringtobstr (lpsztext );

Cstring to BSTR

Generally, cstringt: allocsysstring is used. For example:

Cstring STR ("this is a test ");
BSTR bstrtext = Str. allocsysstring ();
...
Sysfreestring (bstrtext); // release after use

Convert BSTR to cstring

Generally, you can perform the following operations:

BSTR bstrtext =: sysallocstring (L "test ");
Cstringa STR;
Str. Empty ();
STR = bstrtext; or

Cstringa STR (bstrtext );

Conversion between ANSI, Unicode, and wide characters

Method 1: Use multibytetowidechar to convert ANSI to Unicode, and use widechartomultibyte to convert Unicode to ANSI.

Method 2: Use "_ t" to convert ANSI to a "general" string and use "L" to convert ANSI to Unicode, in the hosted C ++ environment, you can use s to convert an ANSI string to a string * object. For example:

Tchar tstr [] = _ T ("this is a test ");
Wchar_t wszstr [] = l "this is a test ";
String * STR = s "this is a test"; Method 3: Use the conversion macro and class of ATL 7.0. Based on the original 3.0, atl7.0 has improved and added many Character String Conversion macros and provided corresponding classes. It has three unified forms:

Among them, the first c Represents a "class", so that the ATL 3.0 macro is different, the second C represents a constant, 2 represents a "to", and ex represents a buffer of a certain size. Sourcetype and destinationtype Can Be A, T, W, and OLE. The meanings are ANSI, Unicode, General, and Ole strings. For example, ca2ct converts ansi to a String constant of the normal type. The following is some sample code:

Lptstr tstr = ca2tex <16> ("this is a test ");
Lpctstr tcstr = ca2ct ("this is a test ");
Wchar_t wszstr [] = l "this is a test ";

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.