NSString到固定长度的char数组转换

时间:2012-08-31 13:54:25

标签: objective-c cocoa nsstring arrays

我有一个包含像这样的char数组的结构:

char name[10];

现在我需要一种方法将NSString转换为这种类型的字符串。

我已经可以将此字符串转换为NSString:

NSString *string = [[NSString alloc] initWithBytes:name length:10      
encoding:NSASCIIStringEncoding];

2 个答案:

答案 0 :(得分:0)

您可以使用getCString:maxLength:encoding:的{​​{1}}方法执行此操作:

NSString

答案 1 :(得分:0)

完整转化过程来回:

// from NSString through char* to NSString again
NSString *text = @"long text or short";
const char *constName = [text UTF8String];

char *name = malloc(sizeof(unichar) * text.length + 1);
memcpy(name, constName, sizeof(unichar) * text.length);

NSString *fromChar = [NSString stringWithUTF8String:name];

NSLog(@"%@", fromChar);

free(name);