obj-c将char *转换为char []?

时间:2014-01-31 07:51:00

标签: objective-c nsstring char

我已经看到了其他语言的问题,但不是具体的客观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.)

1 个答案:

答案 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);