How to convert a string to Unsigned char in c++...
I have,
unsigned char m_Test[8];
I want to assign a string \"Hello world\"
You can use strcpy
:
unsigned char m_Test[8];
strcpy((char*)m_Test, "Hello world");
Note that "Hello world" is too long for 8 bytes, so you will probably get a segfault.
Firstly, the array has to be at least big enough to hold the string:
unsigned char m_Test[20];
then you use strcpy. You need to cast the first parameter to avoid a warning:
strcpy( (char*) m_Test, "Hello World" );
Or if you want to be a C++ purist:
strcpy( static_cast <char*>( m_Test ), "Hello World" );
If you want to initialise the string rather than assign it, you could also say:
unsigned char m_Test[20] = "Hello World";
You can use a string copy function like strcpy or even better strncpy, which has also some size checks:
strncpy ((char*) m_Test,"Hello World",8);
You can use c_str()
function of std::string
to get the char*
out of string. This method basically returns a pointer to c-style string. After this you can use the normal string copying functions such as strcpy
or strncpy
to copy the value in to test
.
you can use strcpy function But have in mind that m_Test is only 8 size and there will be an overflow. Strcpy won't check that and you will get an exception
char * strcpy ( char * destination, const char * source );
strncpy(m_Test, "Hello world", sizeof(m_Test));
Here's Wikipedia on strncpy: