hi all, i have 1 variable of type char[] and i want to copy nnstring value in it can anyone know how to convert nnstring to char array.
A:
NSString *s = @"Some string";
const char *c = [s UTF8String];
You could also use -[NSString cStringUsingEncoding:]
if your string is encoded with something other than UTF-8.
mipadi
2010-08-27 05:30:29
A:
mipadi's answer is the best if you just want a char*
containing the contents of the string, however NSString provides methods for obtaining the data into a buffer that you have allocated yourself. For example, you can copy the characters into an array of unichar
using getCharacters:range:
like this:
NSUInteger length = [str length];
unichar buffer[length];
[str getCharacters:buffer range:NSMakeRange(0, length)];
for (NSUInteger i = 0; i < length; i++)
{
doSomethingWithThis(buffer[i]);
}
If you have to use char
, then you can use the more complicated getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
like this (demonstrated in Eastern Polish Christmas Tree notation):
NSUInteger length = [str length];
NSUInteger bufferSize = 500;
char buffer[bufferSize] = {0};
[str getBytes:buffer
maxLength:(bufferSize - 1)
usedLength:NULL
encoding:NSUTF8StringEncoding
options:0
range:NSMakeRange(0, length)
remainingRange:NULL];
dreamlax
2010-08-27 06:00:45