Objective c obj-c将字符*转换为字符[]?

Objective c obj-c将字符*转换为字符[]?,objective-c,nsstring,char,Objective C,Nsstring,Char,我见过针对其他语言提出的问题,但不是特别针对objective-c。如何将char*转换为char[] 代码: 您可以这样做: NSString *s = @"Some string"; const char *c = [s UTF8String]; NSString *data = @"Some string"; const char* utf8String = [data UTF8String]; size_t len = strlen(utf8String) + 1; char mac

我见过针对其他语言提出的问题,但不是特别针对objective-c。如何将char*转换为char[]

代码:


您可以这样做:

NSString *s = @"Some string";
const char *c = [s UTF8String];
NSString *data = @"Some string";
const char* utf8String = [data UTF8String];
size_t len = strlen(utf8String) + 1;

char mac [len];
memcpy(mac, utf8String, len);
你也可以使用

-[NSString cStringUsingEncoding:] 
如果您的字符串不是用UTF-8编码的

一旦拥有const char*,就可以将其用作字符数组:

printf("%c\n", c[5]);
如果要修改字符串,请复制:

char *cpy = strdup(c);
// Work with copy
free(cpy);
如果您必须有一个实际的字符数组,您可以这样做:

NSString *s = @"Some string";
const char *c = [s UTF8String];
NSString *data = @"Some string";
const char* utf8String = [data UTF8String];
size_t len = strlen(utf8String) + 1;

char mac [len];
memcpy(mac, utf8String, len);

为什么是char[]?为什么不是char*?如果在函数中传递char[],则是相同的char*。您能说明如何使用char[]吗?是的,我在上面的注释中说明了。//我怎么能…。我理解您的意思对吗?您需要将十六进制表示的字符串转换为字节数组?这是正确的,目前的答案是将十六进制转换为ascii或十六进制以外的其他形式。我只是尝试将nsstring转换为char[]数组中的0x48、0x45等。我建议使用Base64编码。它比十六进制短得多。和
NSData
都有方便的功能来使用它。抱歉,这没有帮助。它不会生成字符数组。@user3256385检查我编辑的答案,这能回答你的问题吗?嗯,如果太多,没什么大不了的。重要的是它转换了,这似乎是,所以谢谢。错误的问题-错误的答案。这是您在数组中复制的字符串。