我已经看到了其他语言的问题,但不是具体的客观c。我如何将char *转换为char []?
CODE:
NSString *thisString = @"48454C4C4F";
char *charString = [thisString UTF8String];
NSLog(@"%s",charString);
// output: 48454C4C4F
// how could i convert into char [] = {48,45,etc.)
答案 0 :(得分:1)
你可以这样做:
NSString *s = @"Some string";
const char *c = [s UTF8String];
您也可以使用
-[NSString cStringUsingEncoding:]
如果你的字符串是用UTF-8以外的东西编码的。
一旦有了char char *,就可以将它用作chars数组:
printf("%c\n", c[5]);
如果要修改字符串,请复制:
char *cpy = strdup(c);
// Work with copy
free(cpy);
如果你必须有一个实际的char数组,你可以这样做:
NSString *data = @"Some string";
const char* utf8String = [data UTF8String];
size_t len = strlen(utf8String) + 1;
char mac [len];
memcpy(mac, utf8String, len);