Convert NSString into char array

Use -[NSString UTF8String]:

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.


Once you have the const char *, you can work with it similarly to an array of chars:

printf("%c\n", c[5]);

If you want to modify the string, make a copy:

char *cpy = calloc([s length]+1, 1);
strncpy(cpy, c, [s length]);
// Do stuff with cpy
free(cpy);

Leave a Comment