C字符串和NSString字符串对象可以根据指定的编码方式来进行相互转换。值得注意的是,在将NSString对象转换成C字符串时,要考虑编码问题。因为某些NSString对象能够保存的字符,C字符串的部分编码却无法处理。所以在转换时,需要先检查能不能成功地将NSString对象转成指定编码的C字符串。
示例代码:
// 1. C语言的字符串转为OC的字符串
char *cString = "Hello!";
// 方法一
NSString *firstStringOBJ = [NSString stringWithUTF8String:cString];
// 方法二
NSString *secondStringOBJ = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding];
// 2. OC字符串对象转C语言字符串
NSString *stringOBJ = @"Hello!";
const char *resultCString = NULL;
if ([stringOBJ canBeConvertedToEncoding:NSUTF8StringEncoding]) {
resultCString = [stringOBJ cStringUsingEncoding:NSUTF8StringEncoding];
}
参考文献:
1.《Objective-C编程》 [美]Aaron Hillegass ,华中科技大学出版社;
2.CSDN博客:将C语言的字符串转为OC的字符串,
http://m.blog.csdn.net/blog/mhtios_tjsd/38411521